CentOS 用户和组管理详解
在CentOS系统中,用户和组的管理是系统管理员的重要职责之一,本文将详细介绍如何在CentOS中创建和管理用户与用户组,包括相关命令的使用方法和注意事项。

一、基本概念
1、用户(User):每个用户都有一个唯一的用户名和用户ID(UID),用户的家目录通常位于/home/username目录下,普通用户的UID范围是100060000,系统用户的UID范围是1999。
2、用户组(Group):用户组用于将多个用户归为一组,以简化权限管理,每个组有一个唯一的组名和组ID(GID),常见的组有私有组和公共组。
3、文件和目录的权限:Linux系统中的每个文件和目录都有三个权限集合,分别对应文件拥有者(Owner)、群组(Group)和其他用户(Others)的权限,权限包括读(r)、写(w)和执行(x)。
二、用户管理
1. 新建用户
新建用户使用useradd命令,可以指定各种选项来定制用户属性。
useradd [选项] 用户名
常用选项包括:

d:指定用户的家目录,例如d /home/newuser。
s:指定用户的登录Shell,例如s /bin/bash。
u:指定用户的UID,例如u 1001。
G:指定用户所属的附加组,例如G groupname。
示例:创建一个名为newuser的用户,指定家目录和Shell。
useradd d /home/newuser s /bin/bash newuser
2. 设置用户密码

创建用户后,需要为用户设置密码,使用passwd命令:
passwd 新用户
系统会提示输入并确认密码。
3. 修改用户信息
修改用户信息可以使用usermod命令,常用选项包括:
l:修改用户名,例如usermod l 新用户名 旧用户名。
g:修改用户的主要组,例如usermod g 新组名 用户名。
a G:将用户添加到附加组,例如usermod a G 附加组名 用户名。
示例:将用户olduser改名为newuser。
usermod l newuser olduser
4. 删除用户
删除用户使用userdel命令,可选择性地删除用户的主目录:
userdel [r] 用户名
使用r参数可以同时删除用户的主目录和邮件目录。
三、用户组管理
1. 新建用户组
新建用户组使用groupadd命令:
groupadd [选项] 组名
常用选项包括:
g:指定组ID,例如g 1001。
r:创建系统组,系统组的GID范围为1999。
示例:创建一个名为newgroup的新组。
groupadd newgroup
2. 修改用户组
修改用户组的信息使用groupmod命令,常用选项包括:
n:修改组名,例如groupmod n 新组名 旧组名。
g:修改组ID,例如groupmod g 新GID 组名。
示例:将组名oldgroup改为newgroup。
groupmod n newgroup oldgroup
3. 删除用户组
删除用户组使用groupdel命令,需要注意的是,如果用户组中有成员,则必须先删除所有成员才能删除该组。
groupdel 组名
四、用户和组的关系管理
1. 查看用户所属的组
查看用户所属的组可以使用groups或id命令:
groups 用户名 或者 id 用户名
2. 将用户加入用户组
将用户加入用户组可以使用usermod或gpasswd命令,推荐使用gpasswd命令,因为它不会移除用户已有的其他组。
gpasswd a 用户名 组名
示例:将用户newuser加入到newgroup组。
gpasswd a newuser newgroup
3. 从用户组中删除用户
从用户组中删除用户使用gpasswd命令:
gpasswd d 用户名 组名
常见问题解答(FAQs)
Q1: 如何创建一个新的用户并指定其家目录和默认Shell?
A1: 使用useradd命令并指定相关选项,创建一个名为newuser的用户,指定家目录为/home/newuser,默认Shell为/bin/bash:
useradd d /home/newuser s /bin/bash newuser
然后为该用户设置密码:
passwd newuser
Q2: 如何将一个用户加入到多个组中,而不影响其已有的其他组成员身份?
A2: 使用gpasswd a命令将用户追加到新的组中,将用户newuser加入到group1和group2中:
gpasswd a newuser group1 gpasswd a newuser group2
