网站搜索

RHCSA 系列:如何在 RHEL 7 中管理用户和组 - 第 3 部分


与任何其他 Linux 服务器一样,管理 RHEL 7 服务器需要您了解如何添加、编辑、挂起或删除用户帐户,并授予用户对文件的必要权限、目录和其他系统资源来执行分配的任务。

管理用户帐户

要将新用户帐户添加到 RHEL 7 服务器,您可以以 root 身份运行以下两个命令之一:

adduser [new_account]
useradd [new_account]

添加新用户帐户时,默认执行以下操作。

  1. 他/她的主目录已创建(/home/username,除非另有指定)。
  2. 这些.bash_logout.bash_profile.bashrc隐藏文件被复制到用户的主目录中,并将用于为其提供环境变量/她的用户会话。您可以探索其中每一个以获取更多详细信息。
  3. 将为添加的用户帐户创建邮件假脱机目录。
  4. 将创建一个与新用户帐户同名的组。

完整的帐户摘要存储在 /etc/passwd 文件中。该文件保存每个系统用户帐户的记录,并具有以下格式(字段用冒号分隔):

[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]
  1. 这两个字段 [username][Comment] 是不言自明的。
  2. 第二个字段“x”表示该帐户受到影子密码(在 /etc/shadow 中)的保护,该密码用于以 [用户名] 身份登录。
  3. 字段[UID][GID]是整数,同样显示[username]所属的用户IDentification和主要组IDentification 。

最后,

  1. [主目录]显示[用户名]的主目录的绝对位置,并且
  2. [Default shell] 是当用户登录系统时提交给该用户的 shell。

您必须熟悉的另一个重要文件是 /etc/group,其中存储组信息。与 /etc/passwd 的情况一样,每行有一条记录,其字段也用冒号分隔:

[Group name]:[Group password]:[GID]:[Group members]

在哪里,

  1. [组名称]是组的名称。
  2. 该群组是否使用群组密码? (“x”表示否)。
  3. [GID]:与/etc/passwd中的相同。
  4. [组成员]:作为每个组成员的用户列表,以逗号分隔。

添加帐户后,您可以随时使用 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]

下图描述了示例 24

在上面的例子中:

usermod --append --groups gacanepa,users --home /tmp --shell /bin/sh tecmint

要从组中删除用户,请省略上面命令中的 --append 开关,并在 --groups 标志后面列出您希望用户所属的组。

示例 5:通过锁定密码禁用帐户

要禁用帐户,您需要使用-L(小写L)或-lock选项来锁定用户的密码。这将阻止用户登录。

示例 6:解锁密码

当您需要重新启用用户以便他可以再次登录服务器时,请使用-U-unlock选项来解锁用户的密码之前已被阻止,如上面示例 5 中所述。

usermod --unlock tecmint

下图说明了示例 56

示例 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