如何在CentOS中新建一个用户并赋予sudo权限?

在管理和维护 CentOS 服务器时,始终遵循最小权限原则是一项至关重要的安全实践,直接使用 root 用户进行日常操作,虽然权限至高无上,但也带来了巨大的安全风险——一个无意的命令或脚本错误就可能导致整个系统崩溃或被恶意利用,创建一个具有特定权限的普通用户,并授予其在必要时执行管理员命令的能力(即 sudo 权限),是每一位系统管理员都应掌握的技能,本文将详细介绍在 CentOS 系统中创建新用户并为其配置 sudo 权限的完整流程,探讨不同方法的优劣,并提供验证步骤。

如何在CentOS中新建一个用户并赋予sudo权限?

第一步:创建新用户账户

在授予任何权限之前,我们首先需要一个用户账户,CentOS 提供了 useradd 命令来完成这项工作,为了确保新用户拥有完整的个人环境,我们通常会使用 -m 选项来为其创建家目录,并使用 -s 选项指定一个默认的 Shell,如 /bin/bash

打开终端,以 root 用户或已有 sudo 权限的用户身份,执行以下命令来创建一个名为 newuser 的新用户:

sudo useradd -m -s /bin/bash newuser

这里对命令的各个部分进行解释:

  • sudo:因为创建用户需要管理员权限,所以我们使用 sudo 来临时提升权限。
  • useradd:用于创建新用户的系统命令。
  • -m:告诉系统在 /home 目录下为新用户创建一个与用户名同名的家目录,这是推荐的设置,许多应用程序的配置文件都依赖于此目录。
  • -s /bin/bash:为新用户设置默认的登录 Shell 为 Bash,这是最常用且功能最强大的 Shell 之一。

用户创建后,它还没有密码,无法登录,我们需要为这个新用户设置一个安全的密码,使用 passwd 命令:

sudo passwd newuser

执行后,系统会提示您输入两次新密码,为了安全,输入密码时屏幕上不会显示任何字符。

第二步:授予 Sudo 权限

创建好用户后,核心步骤就是授予其 sudo 权限,在 CentOS(以及其他基于 Red Hat 的系统)中,主要有两种推荐的方法可以实现这一目的。

将用户添加到 wheel 组(推荐)

这是最标准、最安全且最受推荐的方法,在 CentOS 中,wheel 组是一个特殊的用户组,其成员默认被允许使用 sudo 命令,这种方式的优点是权限管理集中化,只需管理用户的组成员关系即可控制其 sudo 权限。

要将 newuser 添加到 wheel 组,请使用 usermod 命令:

sudo usermod -aG wheel newuser

命令解析:

如何在CentOS中新建一个用户并赋予sudo权限?

  • usermod:用于修改用户账户属性的命令。
  • -a:代表“append”(追加),这是非常关键的选项,它确保用户被添加到新的组中,而不是被替换为仅属于这个新组,如果省略 -a,用户将会离开所有其他次要组。
  • -G wheel:指定要添加到的组名为 wheel
  • newuser:目标用户名。

默认情况下,CentOS 的 sudoers 配置文件(/etc/sudoers)已经包含了允许 wheel 组成员使用 sudo 的规则,其内容通常如下:

## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL

这行配置的意思是,任何属于 wheel 组的用户,都可以在任何主机(ALL)上,以任何用户身份((ALL),通常是 root)执行任何命令(ALL)。

直接编辑 Sudoers 文件(不推荐)

虽然不推荐给初学者,但直接编辑 /etc/sudoers 文件也是一种授予权限的方法,这种方法更灵活,可以为单个用户定制非常精细的权限规则,但风险也更高,因为一个语法错误就可能导致所有用户都无法使用 sudo,甚至无法登录系统。

绝对不要使用普通的文本编辑器(如 vinano)直接编辑此文件,正确的做法是使用 visudo 命令。visudo 会在保存文件之前对其进行语法检查,从而避免因配置错误而锁死系统。

执行 sudo visudo 命令后,系统会打开一个临时文件(通常是 /etc/sudoers.tmp),在文件中找到类似 ## Allow root to run any commands anywhere 的部分,在其下方添加以下一行:

newuser ALL=(ALL) ALL

这行规则的含义是为 newuser 用户授予与方法一中 wheel 组相同的、不受限制的 sudo 权限,编辑完成后,保存并退出编辑器(在 vi 中是 wq)。visudo 会自动检查语法,如果无误,则会更新 /etc/sudoers 文件。

授权方式 优点 缺点 适用场景
wheel 组 管理集中、安全、不易出错、符合标准 灵活性相对较低 大多数标准场景,授予普通用户完整管理员权限
编辑 sudoers 极度灵活,可精细化控制每个命令和主机 风险高,易因语法错误导致系统问题 需要为特定用户定制特定、有限的命令权限时

第三步:验证 Sudo 权限

授予权限后,验证其是否生效是必不可少的环节,通过 su 命令切换到新创建的用户:

su - newuser

符号会模拟一次完整的登录,加载新用户的环境变量等,切换后,命令提示符通常会变为 ,表示当前是普通用户身份。

尝试执行一个需要 root 权限的命令,例如查看 /root 目录的内容:

如何在CentOS中新建一个用户并赋予sudo权限?

sudo ls /root

首次使用 sudo 时,系统会提示你输入当前用户(即 newuser)的密码,而不是 root 用户的密码,输入正确密码后,如果命令成功执行并列出了 /root 目录下的文件,就证明 sudo 权限配置成功。

另一个更简洁的验证命令是:

sudo whoami

如果权限配置正确,命令的输出应该是 root


相关问答FAQs

Q1:为什么强烈推荐使用将用户添加到 wheel 组的方式,而不是直接修改 sudoers 文件?

A1: 主要基于安全性、可维护性和一致性的考虑,使用 wheel 组是一种集中化的管理策略,系统管理员只需关注用户的组成员关系,就能轻松地批量授予或撤销 sudo 权限,这比在 sudoers 文件中逐行添加或删除要安全和高效得多。visudo 虽然能防止语法错误,但直接编辑文件仍然增加了误操作的风险,例如不小心修改了其他关键规则,而使用 usermod 操作用户组,其命令简单且影响范围明确,遵循 wheel 组的约定是 Linux 系统管理的标准实践,有助于保持系统配置的一致性和可读性,方便其他管理员快速理解和维护。

Q2:如果我需要临时让一个用户拥有 sudo 权限,用完后就收回,哪种方法最方便?

A2: 毫无疑问,使用 wheel 组的方法最方便,当你需要授予权限时,只需执行 sudo usermod -aG wheel username,当用户完成任务后,要收回权限,只需将该用户从 wheel 组中移除即可,命令为 sudo gpasswd -d username wheel,这个过程非常快速、直接,且不会对 sudoers 文件造成任何改动,极大地降低了管理的复杂性和风险,如果使用编辑 sudoers 文件的方法,则需要再次使用 visudo,找到对应的行,将其注释掉或删除,操作相对繁琐。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-12 19:47
下一篇 2025-10-12 19:51

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信