摘要:在 CentOS 系统中,sudo 是一个不可或缺的工具,它允许普通用户以超级用户权限执行特定任务,既提升了安全性,又增强了管理灵活性。本文将带你深入探索如何在 CentOS 中创建和管理 sudo 用户,覆盖用户创建、权限分配、高级配置、日志审计和安全加固,
在 CentOS 系统中,sudo 是一个不可或缺的工具,它允许普通用户以超级用户权限执行特定任务,既提升了安全性,又增强了管理灵活性。本文将带你深入探索如何在 CentOS 中创建和管理 sudo 用户,覆盖用户创建、权限分配、高级配置、日志审计和安全加固,步骤详尽,命令丰富,助你在 CentOS 7、8 或 Stream 上构建安全高效的用户体系。
确保系统就绪是创建 sudo 用户的第一步。
检查当前登录用户:
whoami输出如 root,说明你是超级用户。检查 sudo 是否存在:
rpm -q sudo输出示例:sudo-1.8.23-10.el7.x86_64 表示已安装。未安装则执行:yum install sudo -y # CentOS 7dnf install sudo -y # CentOS 8 或 Stream保持软件包最新:
yum update -y # CentOS 7dnf update -y # CentOS 8 或 Streamsudo 权限需绑定到普通用户,以下创建一个名为 myadmin 的用户。
使用 adduser 创建:
adduser myadmin创建用户 myadmin 及主目录 /home/myadmin。为用户设置安全密码:
passwd myadmin提示输入新密码,如 Secure@2025,确认后生效。建议密码包含大小写、数字、特殊字符,长度至少 8 位。验证用户是否存在:
id myadmin输出示例:uid=1001(myadmin) gid=1001(myadmin) groups=1001(myadmin)。新用户默认无 sudo 权限,需手动配置。
CentOS 中,wheel 组成员自动获得 sudo 权限。
执行:
usermod -aG wheel myadmin-a:追加组,保留现有组。-G:指定 wheel 组。确认用户在 wheel 组:
groups myadmin输出示例:myadmin : myadmin wheel。通过 /etc/sudoers 文件灵活配置权限。
安全编辑文件:
visudo打开 /etc/sudoers,避免语法错误。授予全部权限在 # User privilege specification 下添加:
myadmin ALL=(ALL) ALL含义:myadmin:目标用户。ALL:任何主机。(ALL):以任何用户身份运行。ALL:所有命令。保存退出:按 Esc,输入 :wq,回车。如仅允许重启和查看日志,添加:
myadmin ALL=(ALL) /usr/bin/systemctl start *, /usr/bin/systemctl stop *, /bin/cat /var/log/*测试权限切换用户:
su - myadmin测试 sudo:
sudo whoami输出 root 表示成功,需输入 myadmin 密码。简化操作,免除密码输入。
运行:
visudo添加:
myadmin ALL=(ALL) NOPASSWD: ALLNOPASSWD:无需密码。切换到 myadmin:
su - myadmin测试:
sudo dnf update -y应直接运行,无需密码。限定用户从特定主机使用 sudo:
visudo添加:
myadmin server.example.com=(ALL) ALL仅在 server.example.com 有效。命令别名简化权限管理。
定义别名Cmnd_Alias ADMIN_TASKS = /usr/bin/systemctl, /usr/sbin/shutdown, /bin/rpmmyadmin ALL=(ALL) ADMIN_TASKS限制 myadmin 只能运行指定命令。查看 wheel 组成员:
getent group wheel输出示例:wheel:x:10:myadmin,otheruser。执行:
gpasswd -d myadmin wheel删除 myadmin 的 wheel 权限。运行 visudo,注释或删除:
# myadmin ALL=(ALL) ALL删除用户不再需要时删除:
userdel -r myadmin-r:移除主目录和相关文件。操作记录默认存于 /var/log/secure。
查看日志运行:
sudo less /var/log/secure示例记录:Jun 02 21:41:00 server sudo: myadmin : TTY=pts/0 ; PWD=/home/myadmin ; USER=root ; COMMAND=/usr/bin/whoamiDefaults logfile="/var/log/sudo_custom.log"创建日志文件:
touch /var/log/sudo_custom.logchmod 600 /var/log/sudo_custom.log操作记录存于 /var/log/sudo_custom.log。强密码策略:密码复杂,定期更换。最小权限原则:避免过度授权,如 ALL=(ALL) ALL。备份 Sudoers:编辑前备份:cp /etc/sudoers /etc/sudoers.backup日志审计:定期检查:sudo grep 'sudo' /var/log/secure禁用 Root 登录:编辑 /etc/SSH/sshd_config:PermitRootLogin no重启 SSH:
错误:密码无效解决:重置:错误:命令无权限解决:确认 /etc/sudoers 中的路径正确。来源:wljslmz一点号