在Rocky Linux服务器上创建具有sudo权限的用户,核心步骤是先用root账户新建普通用户,再通过usermod命令将其加入wheel组,最后验证权限即可实现安全且标准的提权管理。
在服务器运维的日常场景中,直接使用root账户进行日常操作被视为一种高风险行为,业内专家指出,这种做法极易因误操作导致系统核心文件损坏,或者因为密码泄露造成整个服务器的沦陷,建立一套规范的权限管理体系,特别是为特定管理员分配sudo权限,已成为Linux系统安全加固的标准动作,Rocky Linux作为企业级Linux发行版,继承了RHEL(Red Hat Enterprise Linux)的严谨性,其权限管理机制既强大又灵活,本文将深入解析如何在Rocky Linux中安全地创建sudo用户,帮助运维人员避开常见陷阱,构建稳固的服务器访问层。
Rocky Linux创建sudo用户的标准流程
在Rocky Linux系统中,sudo权限并非通过修改用户属性直接赋予,而是基于“组”的概念进行管理的,默认情况下,系统安装后会创建一个名为wheel的特殊用户组,只要将某个用户加入这个组,该用户就自动拥有了执行sudo命令的资格,这种设计符合最小权限原则,便于集中管理。
第一步:以root身份登录并创建新用户
一切操作的起点都是拥有最高权限的root账户,你需要通过SSH客户端连接到你的Rocky Linux服务器,如果服务器刚刚安装完成,通常只有root用户可用。
在终端中输入以下命令来创建一个新的普通用户,这里的newuser可以替换为你希望命名的用户名,例如admin或developer。
useradd -m newuser
参数-m的作用是创建用户的家目录(/home/newuser),这是确保用户登录后能正常访问个人配置文件的关键步骤,创建用户后,系统会提示你设置密码。
passwd newuser
输入两次密码以完成设置,Linux终端输入密码时不会显示任何字符,这是正常的安全机制,输完直接回车即可。
第二步:将用户加入wheel组
这是赋予sudo权限最关键的一步,在Rocky Linux及大多数基于RHEL的系统中,

/etc/sudoers文件默认配置允许wheel组内的成员使用sudo命令,我们只需将新用户加入该组。
使用usermod命令进行组管理:
usermod -aG wheel newuser
这里有两个参数需要特别注意:
-a:代表append(追加),如果不加这个参数,用户会被从其他组中移除,只保留在wheel组中,这可能导致用户失去其他必要的访问权限。-G:代表指定附加组(supplementary groups)。
执行完这条命令后,用户newuser即刻拥有了sudo权限,无需重启服务或重新登录,权限即刻生效。
验证与测试sudo权限的有效性
创建完成后,直接验证权限是否生效是必不可少的一环,很多新手在此处容易忽略细节,导致后续排查困难。
切换用户并执行测试命令
切换到新创建的用户:
su - newuser
注意这里的符号,它代表切换用户的同时也切换环境变量,确保新用户的Shell环境干净且正确。
尝试执行一条需要root权限的命令,例如查看系统日志或安装软件。
sudo dnf update
首次执行sudo命令时,系统会要求输入该用户自己的密码,而不是root密码,输入正确后,命令将正常执行,如果看到类似[sudo] password for newuser:的提示,说明sudo机制正在工作。
检查sudoers配置文件
为了更直观地确认权限,可以使用sudo -l命令列出当前用户拥有的sudo权限。
sudo -l
如果输出中包含(ALL) ALL或类似的条目,说明该用户拥有完整的sudo权限,如果发现权限受限,例如只能执行特定命令,则需要检查/etc/sudoers.d/目录下的自定义配置文件。
Rocky Linux与Ubuntu创建sudo用户差异对比
许多运维人员同时管理多种Linux发行版,了解不同系统间的差异能显著提高工作效率,业内共识认为,虽然核心逻辑相似,但默认配置存在显著区别。
| 特性 |
Rocky Linux / RHEL系列 | Ubuntu / Debian系列 |
|---|---|---|
| 默认sudo组名 | wheel | sudo |
| 创建用户命令 | useradd | adduser (交互式) 或 useradd |
| 加入组命令 | usermod -aG wheel user | usermod -aG sudo user |
| 默认编辑器 | vi/vim | nano 或 vi |
| 密码策略默认值 | 较严格,需符合复杂度 | 相对宽松,依赖PAM配置 |
在Ubuntu系统中,创建用户后需将其加入sudo组,而在Rocky Linux中则是wheel组,这一细微差别常导致跨平台运维时的混淆,Ubuntu的adduser命令是Perl脚本,会引导用户交互式地设置密码和基本信息,而Rocky Linux的useradd是底层二进制命令,默认不设置密码也不创建家目录(除非加-m),需要管理员手动补充。
进阶配置:自定义sudo权限范围
虽然加入wheel组提供了完整的sudo权限,但在实际生产环境中,出于安全考虑,往往需要限制特定用户只能执行某些命令,允许开发人员重启Nginx服务,但不允许他们修改系统时间或安装软件。
使用visudo编辑配置文件
永远不要直接编辑/etc/sudoers文件,而应使用visudo命令,该命令会在保存前检查语法错误,防止因配置错误导致所有用户无法使用sudo,从而锁死服务器。
visudo
或者,更推荐的做法是在/etc/sudoers.d/目录下创建单独的文件,例如/etc/sudoers.d/newuser。
visudo -f /etc/sudoers.d/newuser
编写具体的权限规则

在配置文件中,你可以定义如下规则:
newuser ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/systemctl stop nginx
这行配置的含义是:用户newuser可以从任何主机以任何用户身份执行systemctl restart nginx和systemctl stop nginx命令,但不能执行其他命令,这种细粒度的控制极大地提升了服务器的安全性,据统计,多数情况下,通过限制sudo命令范围,可以有效减少90%以上的误操作风险。
常见问题与故障排查
在实际操作中,用户可能会遇到各种权限相关的问题,以下是两个最常见的问题及其解决方案。
Q1: 为什么加入wheel组后仍然提示权限不足?
这种情况通常由两个原因引起,检查/etc/sudoers文件中是否有一行%wheel ALL=(ALL) ALL被注释掉了(即以开头),如果有,请取消注释,确认用户是否真的在wheel组中,可以使用groups newuser命令查看用户所属的组列表,如果列表中不包含wheel,请重新执行usermod -aG wheel newuser,确保没有在其他配置文件中覆盖了默认设置。
Q2: 如何禁用root用户的直接SSH登录?
为了增强安全性,建议在创建好sudo用户并验证无误后,禁用root的SSH直接登录,编辑/etc/ssh/sshd_config文件,找到PermitRootLogin选项,将其修改为no。
PermitRootLogin no
然后重启SSH服务:
systemctl restart sshd
这样,即使root密码泄露,攻击者也无法通过SSH直接登录服务器,必须通过sudo用户提权,从而增加了攻击难度,这一措施是业内推荐的基础安全加固手段之一。
在Rocky Linux服务器中创建sudo权限用户,不仅是一个简单的技术操作,更是构建安全运维体系的重要基石,通过遵循标准的用户创建流程,合理配置wheel组,并根据实际需求细化sudo权限,运维人员可以在享受高效管理的同时,最大程度地降低系统风险,权限管理是一个持续的过程,定期审计用户权限和审查sudo日志,是保持服务器长期安全运行的关键。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/406187.html

