讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux 特殊权限控制:禁止普通用户执行特定敏感命令

夜辰同学_7745

夜辰同学_7745

发布时间:2026-09-14 11:51:01

|

857人浏览过

|

来源于php中文网

原创

最稳妥的做法是分层控制:用 /etc/sudoers 做命令级白名单授权,用 shell 替换切断交互入口,再辅以文件权限或 ACL 防止本地绕过。

linux 特殊权限控制:禁止普通用户执行特定敏感命令

禁止普通用户执行特定敏感命令,关键不是“堵住所有门”,而是“只留一道可控的门”。直接删命令、改权限或全局禁用,容易引发系统异常或被绕过。真正稳妥的做法是分层控制:用 /etc/sudoers 做命令级白名单授权,用 shell 替换 切断交互入口,再辅以 文件权限或 ACL 防止本地绕过。

用 sudoers 精确控制可执行命令

这是最常用也最推荐的方式,核心是白名单思维——没写进规则的,一律不许执行。

  • 必须用 visudo 编辑 /etc/sudoers,避免语法错误导致整个 sudo 失效
  • 写绝对路径,例如 devuser ALL=(root) /usr/bin/systemctl restart nginx,漏掉 /usr/bin/ 或写成 systemctl 都会失败
  • 禁止某条命令加 ! 前缀,如 alice ALL=(ALL) !/bin/rm, !/sbin/shutdown
  • NOPASSWD: 必须紧贴命令前,格式为 bob ALL=(root) NOPASSWD: /bin/ls, !/bin/cp;写成 NOPASSWD: ALL 是无效的
  • 规则从上到下匹配,第一条命中即停止,确保你的限制行在通用规则(如 %sudo ALL=(ALL:ALL) ALL)之前

用 shell 替换阻止交互式执行

即使用户有账号,也不意味着他能登录敲命令。把 shell 换成 /sbin/nologin 或 /bin/false,是最干净的“禁用登录”方式。

onewo-rtlinux
onewo-rtlinux

Linux 实时编程助手。生成、审查并修改用于周期性控制任务和中断驱动程序的 C 代码。强制实施实时调度策略。

下载
  • 执行 sudo usermod -s /sbin/nologin username,SSH 登录会立即退出,并提示 “This account is currently not available.”
  • 该操作不影响 cron、systemd --user 或其他非交互服务,只要它们不依赖 shell 启动
  • 若需保留 rsync/scp 等非交互访问,可用 /bin/false,提示更简短但效果类似
  • 恢复登录只需 sudo usermod -s /bin/bash username,无需重设密码

用文件权限或 ACL 封死本地绕过路径

有些用户可能绕过 sudo,直接调用二进制。这时需从文件层面加固:

  • 撤销执行权限:sudo chmod -x /usr/bin/reboot,普通用户执行时会报 “Permission denied”
  • 用 ACL 精确屏蔽单个用户:sudo setfacl -m u:unwanted:r-x /usr/bin/rm 改为只读可执行,或 sudo setfacl -m u:unwanted:--- /usr/bin/rm 完全禁止
  • 慎用 alias rm=: 这类 .bashrc 方式——仅对交互式 bash 生效,脚本、sh 或其他 shell 下完全无效
  • 避免直接删或重命名命令(如 mv /bin/rm /bin/rm.bak),很多系统工具依赖这些路径,易引发意外故障

额外提醒:避开常见陷阱

很多看似生效的配置,其实存在隐蔽漏洞:

  • env_reset 默认开启,$PATH、$HOME 等变量会被重置,脚本里硬编码路径才可靠
  • 通配符(如 /usr/bin/*)和符号链接可能被用于逃逸,尽量用具体路径
  • 别依赖 rbash 作主防线——它容易被 exec bash 或 sh -c 绕过
  • 验证权限是否生效:用目标用户执行 sudo -l 查看允许命令列表,再实测允许与禁止项

热门AI工具

更多
火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3690

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3193

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2273

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

5430

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5102

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3033

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2545

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2759

2023.07.25

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

120

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn