Linux 权限控制:Sudoers 文件的配置与授权管理

云浩酱_9090

云浩酱_9090

2026-09-05

220人浏览

原创

必须用visudo编辑/etc/sudoers,因其强制语法校验、加锁防冲突、阻止错误写入;推荐使用/etc/sudoers.d/模块化管理,遵循最小权限原则精确授权命令路径,并通过sudo -l和日志审计验证。

linux 权限控制:sudoers 文件的配置与授权管理

直接改 /etc/sudoers 是高危操作,90% 的 sudo 失效事故都源于此。必须用 visudo 编辑,它会在保存前强制语法校验——错一行,就拦住你,不写入、不生效、不锁系统。

安全编辑:只用 visudo,别碰原始文件

系统不允许直接编辑 /etc/sudoers,不是限制,而是保护。它的权限是 0440,普通用户不可读,root 用户也必须通过专用工具修改。

  • 主配置用 sudo visudo —— 自动检查语法,报错时显示具体行号和错误类型(如 “syntax error near line 27”)
  • 自定义规则优先写进 /etc/sudoers.d/ 下的独立文件,例如:sudo visudo -f /etc/sudoers.d/webadmin
  • 所有规则文件都需以 .defaults 或无扩展名保存,且权限必须为 0440(sudo chmod 0440 /etc/sudoers.d/webadmin)
  • 绝对不要用 vim /etc/sudoers 或 nano /etc/sudoers 手动保存——没有语法防护,改错即失能

授权规则:四要素缺一不可

每条有效规则必须明确“谁、在哪儿、以谁身份、能运行什么”。格式固定为:

用户或组 主机列表 = (目标用户:目标组) 命令列表

linux-performance-analyzer
linux-performance-analyzer

Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。

下载
  • 用户或组:单个用户(alice)、系统组(%sudo 或 %wheel,注意前缀 %)或已定义的 User_Alias
  • 主机列表:生产环境建议写 ALL;多机房可限定为 web01,db02 或用 Host_Alias 统一管理
  • 目标用户:目标组:括号内必填,如 (root)、(www-data:www-data),不写等同于 (ALL:ALL)
  • 命令列表:必须用绝对路径,禁止通配符泛匹配(如 /usr/bin/*),危险命令如 /bin/bash、/usr/bin/python3 -c 必须显式排除

精细控制:防逃逸、限参数、控交互

只写命令路径远远不够。攻击者常通过参数注入或子进程调起 shell 提权,必须层层设防。

  • 用 ! 排除风险操作:例如 alice ALL=(root) /usr/bin/tail /var/log/*.log, !/usr/bin/rm /var/log/*.log
  • 对分页器禁用子进程:加 Defaults!PAGERS noexec,防止 less /etc/shadow 中按 ! 执行 shell
  • 强制终端绑定:Defaults requiretty 写在文件顶部,阻断 cron、web shell 等非交互式调用
  • 启用完整审计:Defaults logfile="/var/log/sudo.log" 和 Defaults log_input,log_output,记录命令输入输出流

可维护性:用别名替代硬编码

用户增多、命令变杂后,靠逐行写规则极易出错。别名机制把逻辑解耦,提升可读与可管性。

  • User_Alias DBA = alice, bob, %dba-team —— 按角色聚合用户
  • Cmnd_Alias DB_CMDS = /usr/bin/mysql, /usr/bin/mysqldump, /usr/bin/mysqladmin —— 按用途归类命令
  • DBA ALL = (root) DB_CMDS —— 规则简洁清晰,增删命令只需改别名定义
  • 组合更灵活:例如 DBA PROD = (root) DB_CMDS,其中 PROD 是预定义的 Host_Alias

改完立即验证:切换到目标用户,运行 sudo -l 查看可见权限,再试一条真实命令,比如 sudo -u www-data ls /var/www。日志查 /var/log/sudo.log 确认执行轨迹。误操作导致锁死?重启进 recovery mode,挂载根分区后用 visudo 修复即可。

相关专题

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

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

2023.06.21

3650

4

如何安装LINUX
如何安装LINUX

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

2023.06.29

3193

10

linux find
linux find

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

2023.06.30

2253

5

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

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

2023.07.05

5390

7

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

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

2023.07.06

5042

7

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

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

2023.07.20

3013

8

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

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

2023.07.20

2525

4

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

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

2023.07.25

2739

6

linux查找文件命令
linux查找文件命令

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

2023.07.31

277

3

热门下载

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

精品课程

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

共0课时 | 0人学习

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

共0课时 | 0人学习