方法1:仅移除sudo权限(保留用户账户)
适用于需保留用户但撤销管理员权限的场景。
-
查看用户所属组
执行命令确认用户是否在sudo
或wheel
组(不同系统组名可能不同):groups 用户名 # groups john
若输出包含
sudo
或wheel
,则需移除。 -
移除sudo组
使用gpasswd
命令从组中删除用户:sudo gpasswd -d 用户名 sudo # 对于Debian/Ubuntu等 # 或 sudo gpasswd -d 用户名 wheel # 对于CentOS/RHEL等
-
验证权限
切换至该用户,测试sudo命令是否失效:su - 用户名 sudo ls /root # 应提示"用户名 is not in the sudoers file"
方法2:彻底删除用户账户(连带主目录)
适用于需完全清除账户的场景(如用户离职)。
-
删除用户及关联文件
使用userdel
命令移除账户并删除主目录:sudo userdel -r 用户名 # -r参数同时删除/home/下的用户目录
-
检查残留权限
查看/etc/sudoers
文件,确认无该用户配置:sudo visudo # 检查并删除类似"用户名 ALL=(ALL:ALL) ALL"的行
⚠️ 关键注意事项
-
权限验证
操作后务必检查:sudo grep 'sudo' /etc/group # 查看sudo组中是否无此用户 id 用户名 # 若用户存在,输出应无"sudo"组
-
风险预防
- 禁止删除当前登录用户:否则可能导致系统崩溃。
- 备份数据:删除前用
tar -cvzf backup.tar.gz /home/用户名
备份用户文件。 - 审计依赖项:检查cron任务、服务配置等是否关联该用户(
sudo crontab -u 用户名 -l
)。
-
系统兼容性
- Ubuntu/Debian:默认sudo组为
sudo
- CentOS/RHEL:默认sudo组为
wheel
- 其他发行版:通过
/etc/sudoers
确认组名
- Ubuntu/Debian:默认sudo组为
场景 | 操作 | 命令示例 |
---|---|---|
仅撤销管理员权限 | 从sudo组移除用户 | sudo gpasswd -d john sudo |
完全删除账户 | 删除用户及主目录 | sudo userdel -r john |
定期审查sudo权限(getent group sudo
)是维护系统安全的最佳实践。误操作可能导致系统不可用,建议在测试环境验证后再执行生产环境操作。
引用说明:本文操作基于Linux标准权限管理机制,参考Linux官方文档(kernel.org)及Ubuntu、Red Hat系统管理指南,关键命令已通过Ubuntu 22.04/CentOS 7实测验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5817.html