场景引入:
小明是公司的运维新手,某天同事急吼吼跑来:"快帮我看看!为啥我sudo执行命令总报错啊?😫" 小明一查发现是sudoers文件配置问题... 别慌!今天我们就用"人话"拆解CentOS6和CentOS7的sudo配置差异,让你从此告别权限翻车!
简单说,sudo是Linux的"临时特权卡"💳——允许普通用户以root身份执行命令,同时记录操作日志,相比直接使用root账户,sudo更安全可控!
典型场景:
/etc/sudoers # 主配置文件(严禁直接编辑!) /etc/sudoers.d/ # 子配置目录(推荐存放自定义配置)
🔥 重要警告:永远用visudo
命令编辑主配置!它能防止语法错误导致sudo瘫痪(系统会校验语法)。
功能 | CentOS6示例 | CentOS7示例 |
---|---|---|
用户授权 | user1 ALL=(ALL) ALL |
同左 |
组授权 | %admin ALL=(ALL) ALL |
同左 |
免密码执行 | user2 ALL=(ALL) NOPASSWD:ALL |
同左 |
命令限制 | user3 ALL=(ALL) /usr/bin/systemctl |
同左 |
💡 小技巧:CentOS7新增Defaults !requiretty
可禁用终端限制(适合自动化脚本)。
# 定义用户组别名 User_Alias DEVOPS = tom, jerry # 定义命令别名 Cmnd_Alias RESTART_CMD = /usr/bin/systemctl restart * # 应用别名 DEVOPS ALL=(ALL) NOPASSWD: RESTART_CMD
✅ 效果:用户tom和jerry可无密码重启所有服务。
在/etc/sudoers
底部添加:
Defaults logfile=/var/log/sudo.log Defaults log_input, log_output
📝 日志查看:
tail -f /var/log/sudo.log # 实时监控sudo操作
# 禁止执行rm -rf / Cmnd_Alias DANGER_CMD = /bin/rm -rf /, /usr/bin/dd if=* of=/dev/sd* # 全局拦截 ALL ALL=(ALL) !DANGER_CMD
⚠️ 系统保护:即使用户有ALL权限,执行sudo rm -rf /
也会被拒绝!
原因:用户未授权
解决:
visudo # 添加用户配置
原因:可能配置了Defaults requiretty
解决:
visudo # 注释掉该行或改为!requiretty
检查点:
0440
: chmod 440 /etc/sudoers.d/custom
/etc/sudoers.d/
下创建独立文件 /var/log/secure
和sudo日志 sudoers
文件 💬 互动提问:
你遇到过最奇葩的sudo配置问题是什么?评论区分享你的"血泪史"吧!😉
(本文配置方法经过CentOS6.10及CentOS7.9实测验证,数据截止2025年7月)
本文由 党平良 于2025-07-31发表在【云服务器提供商】,文中图片由(党平良)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/499447.html
发表评论