centos7 用户如何创建新用户并赋予sudo权限?

在Linux系统的日常运维与管理中,用户管理是确保系统安全、稳定运行的核心环节,CentOS 7作为一款广泛使用的服务器操作系统,其用户管理机制既强大又严谨,本文将系统性地介绍CentOS 7中用户与组管理的相关知识、常用命令及最佳实践,帮助管理员高效、安全地完成用户配置工作。

centos7 用户如何创建新用户并赋予sudo权限?

用户管理的核心概念

在深入命令操作之前,理解几个核心概念至关重要,它们是所有用户管理操作的理论基础。

  • 用户类型:CentOS 7中的用户主要分为三类。

    • 超级用户(root):拥有系统的最高权限,可以执行任何操作,无任何限制,出于安全考虑,应谨慎使用root账户。
    • 系统用户:用于运行系统服务或应用程序,如apache, mysql, nobody等,这些用户通常无法登录系统,其主要作用是隔离服务权限。
    • 普通用户:由管理员创建,用于日常工作和操作,其权限受到严格限制,只能在授权范围内访问和修改文件,从而保障系统安全。
  • 用户组:用户组是多个用户的集合,通过将用户添加到组,可以批量地为组内所有成员分配相同的权限,极大地简化了权限管理,一个用户可以属于一个“主组”和多个“附加组”。

  • 关键配置文件:用户和组的信息存储在几个关键的文本文件中。

    • /etc/passwd:存储用户账户的基本信息,如用户名、UID(用户ID)、GID(组ID)、家目录、默认Shell等。
    • /etc/shadow:存储用户密码的哈希值及密码策略(如过期时间),该文件对普通用户不可读,安全性更高。
    • /etc/group:存储用户组的信息,如组名、GID、组成员列表。
    • /etc/gshadow:存储用户组密码及相关管理员信息。

用户与组的常用命令

掌握命令行工具是进行CentOS 7用户管理的关键,以下是最核心的命令及其用法。

创建、修改与删除用户

  • 创建用户:使用 useradd 命令。

    # 创建一个名为testuser的用户,并自动创建其家目录
    sudo useradd -m testuser
    # 创建用户时指定主组、附加组、Shell和注释信息
    sudo useradd -m -g developers -G admins,sshusers -s /bin/bash -c "Developer Account" devuser

    常用参数:

    • -m:创建用户的家目录(通常为 /home/username)。
    • -g <组名>:指定用户的主组。
    • -G <组名1>,<组名2>:指定用户的附加组,多个组用逗号分隔。
    • -s <Shell路径>:指定用户登录后使用的Shell,如 /bin/bash
    • -c <注释>:添加用户的描述信息。
  • 设置/修改密码:使用 passwd 命令。

    centos7 用户如何创建新用户并赋予sudo权限?

    # 为当前登录用户修改密码
    passwd
    # root用户为其他用户设置或修改密码
    sudo passwd testuser
  • 修改用户属性:使用 usermod 命令。

    # 将用户testuser追加到admins组
    sudo usermod -a -G admins testuser
    # 修改用户testuser的登录名为newuser
    sudo usermod -l newuser testuser
    # 锁定用户,禁止其登录
    sudo usermod -L newuser
    # 解锁用户
    sudo usermod -U newuser

    注意:在使用-G参数修改附加组时,它会覆盖原有的附加组列表,若要追加新组,必须使用-a(append)选项。

  • 删除用户:使用 userdel 命令。

    # 仅删除用户账户,保留其家目录和文件
    sudo userdel olduser
    # 删除用户账户的同时,删除其家目录及邮件池
    sudo userdel -r olduser

用户组管理

  • 创建组groupadd groupname
  • 修改组groupmod -n newgroupname oldgroupname
  • 删除组groupdel groupname(删除组前需确保该组没有用户作为其主组)

为了更直观地展示,下表小编总结了常用命令:

功能 命令 常用示例
创建用户 useradd sudo useradd -m -s /bin/bashtestuser
设置密码 passwd sudo passwd testuser
修改用户 usermod sudo usermod -a -G wheel testuser
删除用户 userdel sudo userdel -r testuser
创建组 groupadd sudo groupadd developers
删除组 groupdel sudo groupadd developers
查看用户ID id id testuser
查看所属组 groups groups testuser

使用sudo进行权限委派

直接使用root账户进行日常操作存在巨大的安全风险,最佳实践是使用普通用户登录,通过sudo(superuser do)机制来临时获取root权限执行特定命令。

sudo的配置文件是/etc/sudoers,强烈建议使用visudo命令进行编辑,该命令会在保存时检查语法,避免因配置错误导致sudo无法使用。

一个常见的配置是允许特定用户组的成员执行所有命令:

# 允许wheel组的成员执行所有命令
%wheel ALL=(ALL) ALL

只需将一个普通用户添加到wheel组,该用户就能使用sudo了:

centos7 用户如何创建新用户并赋予sudo权限?

sudo usermod -a -G wheel testuser

CentOS 7的用户管理体系是构建系统安全堡垒的基石,通过理解用户与组的模型,熟练运用useradd, usermod, passwd等命令,并结合sudo进行精细化的权限委派,管理员可以有效地控制资源访问,追踪操作行为,从而维护整个系统的稳定与安全,规范化的用户管理流程,是每一位专业系统运维人员的必备技能。


相关问答 (FAQs)

Q1: 在CentOS 7中,useraddadduser 命令有什么区别?

A: 在CentOS 7(以及大多数基于Red Hat的系统)中,useraddadduser 实际上是同一个命令。adduser 通常是 useradd 的一个符号链接(软链接),你可以通过 ls -l /usr/sbin/adduser 来验证这一点,无论你使用哪个命令,调用的都是同一个二进制文件,其功能和所有参数都是完全一样的,在一些其他Linux发行版(如Debian/Ubuntu)中,adduser 可能是一个更友好的、交互式的Perl脚本,它会自动创建家目录、设置密码等,而useradd是更底层的工具,但在CentOS 7中,可以认为二者没有区别。

Q2: 如果忘记了root密码,但又没有其他具有sudo权限的用户账户,该如何重置?这和用户管理有关吗?

A: 这确实是一个与用户管理密切相关的高级应急场景,当无法通过常规方式登录时,可以通过单用户模式(Single-User Mode)或恢复模式来重置root密码,步骤如下:

  1. 重启服务器,在GRUB引导菜单出现时,按 e 键进入编辑模式。
  2. 找到以 linux16linuxefi 开头的行,使用方向键移动到行末。
  3. 在行末添加 init=/bin/bashrd.break,推荐使用 rd.break,因为它更现代且安全。
  4. Ctrl + X 启动系统,此时会进入一个临时的shell环境。
  5. 挂载文件系统:由于进入的是救援模式,根文件系统是只读的,需要重新挂载为读写模式。
    mount -o remount,rw /sysroot
  6. 切换到原始系统环境
    chroot /sysroot
  7. 修改root密码:你就可以使用 passwd 命令来重置root密码了。
    passwd root
  8. 更新SELinux上下文(非常关键!):由于我们修改了/etc/shadow文件,需要让SELinux重新标记该文件,否则重启后可能依然无法登录。
    touch /.autorelabel
  9. 退出并重启
    exit
    exit

    系统会自动重启,重启过程可能会因为SELinux重新标记文件而稍长,这是正常的,重启完成后,你就可以使用新设置的root密码登录了,整个过程绕过了正常的用户认证,直接在底层对用户账户(这里是root)的关键属性(密码)进行了修改,是用户管理在应急场景下的终极体现。

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

(0)
热舞的头像热舞
上一篇 2025-10-12 10:55
下一篇 2025-10-12 10:58

相关推荐

  • 如何查看服务器上的字符集设置?

    服务器查看字符集是指通过特定的命令或工具来识别和显示服务器当前使用的字符编码设置。这一操作对于确保数据的准确处理和显示非常重要,特别是在处理多语言内容时。

    2024-07-25
    0010
  • CentOS如何强制卸载一个提示正忙的磁盘?

    在CentOS系统中管理磁盘时,我们经常会遇到使用 umount 命令无法正常卸载磁盘分区的情况,系统通常会提示“device is busy”或“target is busy”的错误信息,这通常意味着有进程正在访问该挂载点或其上的文件,就需要采用一些特殊的方法来实现CentOS强制卸载盘的操作,为何无法正常卸……

    2025-10-07
    003
  • 如何正确配置服务器并创建应用?

    本视频教程详细讲解了服务器的配置过程,指导观众如何从零开始搭建和配置服务器。内容涵盖硬件选择、操作系统安装、网络安全设置以及服务器优化等关键环节。还介绍了创建和管理应用的基本步骤,适合初学者和希望提高服务器管理技能的开发者观看学习。

    2024-08-03
    005
  • CentOS7的root密码忘记了该如何进行重置?

    在CentOS 7系统中,密码是保障系统安全的第一道,也是最重要的一道防线,无论是本地登录还是远程SSH访问,一个强健且管理得当的密码策略能够有效抵御未经授权的访问和暴力破解,本文将系统性地介绍CentOS 7中密码的日常管理、应急重置、安全策略配置以及更高级的认证方式,旨在为系统管理员提供一份全面、实用的参考……

    2025-10-20
    002

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信