如何在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

相关推荐

  • CentOS系统启动时没有引导选项怎么办?

    当CentOS系统启动时没有显示引导项,这通常意味着引导配置出现问题,导致系统无法正常加载启动菜单,这种情况可能由多种原因引起,例如引导记录损坏、引导文件丢失或GRUB配置错误等,用户需要逐步排查问题,并采取相应的修复措施,检查BIOS/UEFI设置确保BIOS或UEFI设置中正确识别了硬盘设备,进入BIOS……

    2025-11-17
    009
  • CentOS 7如何选择GNOME还是KDE桌面环境?

    在Linux发行版的世界中,CentOS 7作为一款基于Red Hat Enterprise Linux(RHEL)的企业级操作系统,以其稳定性和安全性赢得了广泛认可,而CentOS 7的默认桌面环境——GNOME,以及备受欢迎的KDE Plasma,为用户提供了截然不同的使用体验,本文将深入探讨这两种桌面环境……

    2025-11-15
    004
  • CentOS如何永久修改系统语言为中文?

    在CentOS系统中,更改语言设置是一个常见需求,尤其是对于需要使用非英语界面或处理多语言内容的用户,CentOS作为企业级操作系统,提供了灵活的语言配置方式,本文将详细介绍通过图形界面和命令行两种方法更改系统语言,并涵盖环境变量配置、语言包安装及常见问题处理,帮助用户顺利完成语言切换,通过图形界面更改语言(适……

    2025-11-13
    005
  • 如何为普通用户配置一台适合日常使用的服务器?

    服务器配置与普通电脑配置存在显著差异。服务器通常配备强大的多核处理器、大量内存和高速存储设备,以支持高并发处理和数据吞吐量。而普通电脑配置更注重性价比,适合日常使用。

    2024-08-02
    0017

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信