RHCSA 系列:如何在 RHEL 7 中管理用户和组 - 第 3 部分
与任何其他 Linux 服务器一样,管理 RHEL 7 服务器需要您了解如何添加、编辑、挂起或删除用户帐户,并授予用户对文件的必要权限、目录和其他系统资源来执行分配的任务。
管理用户帐户
要将新用户帐户添加到 RHEL 7 服务器,您可以以 root 身份运行以下两个命令之一:
adduser [new_account]
useradd [new_account]
添加新用户帐户时,默认执行以下操作。
- 他/她的主目录已创建(
/home/username
,除非另有指定)。 - 这些
.bash_logout
、.bash_profile
和.bashrc
隐藏文件被复制到用户的主目录中,并将用于为其提供环境变量/她的用户会话。您可以探索其中每一个以获取更多详细信息。 - 将为添加的用户帐户创建邮件假脱机目录。
- 将创建一个与新用户帐户同名的组。
完整的帐户摘要存储在 /etc/passwd
文件中。该文件保存每个系统用户帐户的记录,并具有以下格式(字段用冒号分隔):
[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]
- 这两个字段
[username]
和[Comment]
是不言自明的。 - 第二个字段“x”表示该帐户受到影子密码(在
/etc/shadow
中)的保护,该密码用于以[用户名]
身份登录。 - 字段
[UID]
和[GID]
是整数,同样显示[username]
所属的用户IDentification和主要组IDentification 。
最后,
[主目录]
显示[用户名]的
主目录的绝对位置,并且[Default shell]
是当用户登录系统时提交给该用户的 shell。
您必须熟悉的另一个重要文件是 /etc/group
,其中存储组信息。与 /etc/passwd
的情况一样,每行有一条记录,其字段也用冒号分隔:
[Group name]:[Group password]:[GID]:[Group members]
在哪里,
[组名称]
是组的名称。- 该群组是否使用群组密码? (“x”表示否)。
[GID]
:与/etc/passwd
中的相同。[组成员]
:作为每个组成员的用户列表,以逗号分隔。
添加帐户后,您可以随时使用 usermod 编辑用户的帐户信息,其基本语法为:
usermod [options] [username]
另请阅读:
15 个‘useradd’命令示例
15 个‘usermod’命令示例
示例 1:设置帐户的到期日期
如果您所在的公司制定了某种政策,要求在特定的时间间隔内启用帐户,或者您想要在有限的时间内授予访问权限,则可以使用 --expiredate
标志后跟 YYYY-MM-DD 格式的日期。要验证更改是否已应用,您可以比较以下输出
chage -l [username]
更新帐户到期日期之前和之后,如下图所示。
示例 2:将用户添加到补充组
除了将新用户帐户添加到系统时创建的主要组之外,还可以使用组合-aG或-append将用户添加到补充组–groups 选项,后跟逗号分隔的组列表。
示例 3:更改用户主目录的默认位置和/或更改其 shell
如果由于某种原因您需要更改用户主目录的默认位置(/home/username 除外),则需要使用 -d 或 < Strong>–home 选项,后跟新主目录的绝对路径。
如果用户想要使用默认分配的 bash 以外的其他 shell(例如 sh),请将 usermod 与 -shell 一起使用> 标志,后跟新 shell 的路径。
示例 4:显示用户所属的组
将用户添加到补充组后,您可以验证它现在是否确实属于该组:
groups [username]
id [username]
下图描述了示例 2 到 4:
在上面的例子中:
usermod --append --groups gacanepa,users --home /tmp --shell /bin/sh tecmint
要从组中删除用户,请省略上面命令中的 --append
开关,并在 --groups
标志后面列出您希望用户所属的组。
示例 5:通过锁定密码禁用帐户
要禁用帐户,您需要使用-L(小写L)或-lock选项来锁定用户的密码。这将阻止用户登录。
示例 6:解锁密码
当您需要重新启用用户以便他可以再次登录服务器时,请使用-U或-unlock选项来解锁用户的密码之前已被阻止,如上面示例 5 中所述。
usermod --unlock tecmint
下图说明了示例 5 和 6:
示例 7:删除组或用户帐户
要删除组,您需要使用groupdel,而要删除用户帐户,您将使用userdel(添加–r开关)如果您还想删除其主目录和邮件后台的内容):
groupdel [group_name] # Delete a group
userdel -r [user_name] # Remove user_name from the system, along with his/her home directory and mail spool
如果存在 group_name 拥有的文件,则不会删除这些文件,但组所有者将设置为已删除组的 GID。