5154

Good Luck To You!

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)的关键属性(密码)进行了修改,是用户管理在应急场景下的终极体现。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年11月    »
12
3456789
10111213141516
17181920212223
24252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.