网站首页 > 技术教程 正文
在 CentOS 系统中,sudo 是一个不可或缺的工具,它允许普通用户以超级用户权限执行特定任务,既提升了安全性,又增强了管理灵活性。本文将带你深入探索如何在 CentOS 中创建和管理 sudo 用户,覆盖用户创建、权限分配、高级配置、日志审计和安全加固,步骤详尽,命令丰富,助你在 CentOS 7、8 或 Stream 上构建安全高效的用户体系。
为什么要用 Sudo 用户?
- 安全性保障:避免直接使用 root 账户,降低误操作风险。
- 精细权限:通过配置文件,精确控制用户可执行的命令。
- 操作可追溯:Sudo 日志记录每条命令,便于审计和排查。
- 协作便利:团队成员可分担管理任务,无需共享 root 密码。
前提准备
- 一台运行 CentOS 7、8 或 Stream 的服务器。
- 以 root 用户或已有 sudo 权限的账户登录。
- 熟悉基本 Linux 命令行操作。
步骤 1:环境检查
确保系统就绪是创建 sudo 用户的第一步。
确认当前身份
检查当前登录用户:
whoami
- 输出如 root,说明你是超级用户。
验证 Sudo 安装
检查 sudo 是否存在:
rpm -q sudo
- 输出示例:sudo-1.8.23-10.el7.x86_64 表示已安装。
- 未安装则执行:
yum install sudo -y # CentOS 7
dnf install sudo -y # CentOS 8 或 Stream
系统更新
保持软件包最新:
yum update -y # CentOS 7
dnf update -y # CentOS 8 或 Stream
步骤 2:创建新用户
sudo 权限需绑定到普通用户,以下创建一个名为 myadmin 的用户。
添加用户
使用 adduser 创建:
adduser myadmin
- 创建用户 myadmin 及主目录 /home/myadmin。
设置密码
为用户设置安全密码:
passwd myadmin
- 提示输入新密码,如 Secure@2025,确认后生效。
- 建议密码包含大小写、数字、特殊字符,长度至少 8 位。
确认用户
验证用户是否存在:
id myadmin
- 输出示例:uid=1001(myadmin) gid=1001(myadmin) groups=1001(myadmin)。
步骤 3:分配 Sudo 权限
新用户默认无 sudo 权限,需手动配置。
方法 1:加入 Wheel 组
CentOS 中,wheel 组成员自动获得 sudo 权限。
添加到 Wheel 组
执行:
usermod -aG wheel myadmin
- -a:追加组,保留现有组。
- -G:指定 wheel 组。
检查组成员
确认用户在 wheel 组:
groups myadmin
- 输出示例:myadmin : myadmin wheel。
方法 2:自定义 Sudoers 文件
通过 /etc/sudoers 文件灵活配置权限。
编辑 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 密码。
步骤 4:高级 Sudo 设置
免密码 Sudo
简化操作,免除密码输入。
配置免密码
运行:
visudo
添加:
myadmin ALL=(ALL) NOPASSWD: ALL
- NOPASSWD:无需密码。
验证
切换到 myadmin:
su - myadmin
测试:
sudo dnf update -y
- 应直接运行,无需密码。
限制主机
限定用户从特定主机使用 sudo:
visudo
添加:
myadmin server.example.com=(ALL) ALL
- 仅在 server.example.com 有效。
命令别名
简化权限管理。
定义别名
运行 visudo,添加:
Cmnd_Alias ADMIN_TASKS = /usr/bin/systemctl, /usr/sbin/shutdown, /bin/rpm
myadmin ALL=(ALL) ADMIN_TASKS
- 限制 myadmin 只能运行指定命令。
步骤 5:用户管理
列出 Sudo 用户
查看 wheel 组成员:
getent group wheel
- 输出示例:wheel:x:10:myadmin,otheruser。
撤销 Sudo 权限
移除 Wheel 组
执行:
gpasswd -d myadmin wheel
- 删除 myadmin 的 wheel 权限。
修改 Sudoers
运行 visudo,注释或删除:
# myadmin ALL=(ALL) ALL
删除用户
不再需要时删除:
userdel -r myadmin
- -r:移除主目录和相关文件。
步骤 6:日志与监控
检查 Sudo 日志
操作记录默认存于 /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/whoami
自定义日志
运行 visudo,添加:
Defaults logfile="/var/log/sudo_custom.log"
创建日志文件:
touch /var/log/sudo_custom.log
chmod 600 /var/log/sudo_custom.log
- 操作记录存于 /var/log/sudo_custom.log。
步骤 7:安全强化
- 强密码策略:密码复杂,定期更换。
- 最小权限原则:避免过度授权,如 ALL=(ALL) ALL。
- 备份 Sudoers:编辑前备份:
cp /etc/sudoers /etc/sudoers.backup
- 日志审计:定期检查:
sudo grep 'sudo' /var/log/secure
- 禁用 Root 登录:编辑 /etc/ssh/sshd_config:
PermitRootLogin no
重启 SSH:
sudo systemctl restart sshd
故障排除
- 错误:user is not in the sudoers file
- 解决:检查 wheel 组或 /etc/sudoers:
groups myadmin
visudo
- 错误:密码无效
- 解决:重置:
sudo passwd myadmin
- 错误:命令无权限
- 解决:确认 /etc/sudoers 中的路径正确。
猜你喜欢
- 2025-07-03 Linux入门-普通用户赋予sudo权限(linux基础用户及权限管理的思维导图)
- 2025-07-03 Linux系统更改系统用户与密码,RK3568工控主板演示
- 2025-07-03 在Windows服务器上安装Linux系统5种主要方法!
- 2025-07-03 Linux系统非root用户执行Docker命令
- 2025-07-03 2、linux命令-用户管理(linux用户和用户组管理)
- 2025-07-03 Linux下安装常用软件都有哪些?做了一个汇总列表,你看还缺啥?
- 2025-07-03 Linux中wheel组的使用(centos wheel组和sudo)
- 2025-07-03 信息安全实战案例:Linux系统用户权限管理
- 2025-07-03 Linux 组的管理:groupmod命令 + 练习 + 思维导图
- 2025-07-03 Linux中的用户管理(linux用户管理的命令)
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)