当我们执行“useradd”命令在服务器上添加新用户时,在后台会更新和创建多个文件。
这篇文章列出了执行以下命令时在后台执行的确切步骤。
# useradd john
1. 在 /etc/passwd 中为用户 john 创建了一个新行。
/etc/passwd 文件中的新行将类似于下面显示的行。
john:x:1001:1001::/home/john:/bin/bash
/etc/passwd 文件中的新行包含以下字段:
- 它以用户名 john 开头。
- 密码字段有一个 x,表示系统正在使用影子密码。
- 创建了大于等于 1000 的 UID。 (在 Red Hat Enterprise Linux 下,1000 以下的 UID 和 GID 保留供系统使用。)
- 创建了一个等于或者大于 1000 的 GID。
- 我们可以在下一个字段中为用户添加注释。对于这个例子,它保持空白。
- john 的主目录设置为 /home/john 。
- 默认shell设置为 /bin/bash 。
2. 在 /etc/shadow 中为 john 创建了一个新行。
下面是来自 /etc/shadow 的示例行。
john:!!:17530:0:99999:7:::
在 /etc/group 中创建的行具有以下特征:
- 它以组名 john 开头。默认组名称与用户名相同,因为我们没有明确提供用户名。
- /etc/shadow 文件的密码字段中出现两个感叹号 (!!),用于锁定帐户。
- 自上次更改密码以来的天数(自 1970 年 1 月 1 日起),例如:17530 天
- 密码可更改前的天数(0表示可随时更改)
- 必须更改密码的天数(99999 表示用户可以将其密码保持许多年不变)
- 警告用户密码过期的天数(一整周为 7)
- 密码过期后该帐户被禁用的天数。
- 自 1970 年 1 月 1 日以来帐户被禁用的天数。
- 为将来可能使用的保留字段。
3. 在 /etc/group 中为名为 john 的组创建了一个新行。
与用户同名的组称为用户私有组。
如果我们没有明确提供组名,则会创建一个与用户名同名的私有组名。
/etc/group 文件中的字段如下所示。
john:x:1001:john
- 它以组名 john 开头。
- 下一个字段中的 x 表示 tgroup 密码已加密。如果此字段为空,则不需要密码。
- 下一个字段是数字组 ID。
- 最后一个字段是该组成员的用户名列表,用逗号分隔。
4. 在 /etc/gshadow 中为名为 juan 的组创建了一个新行。
/etc/gshadow 包含组帐户的影子信息。
在 /etc/gshadow 文件中创建的行具有以下特征:
john:!::john
- 第一个字段以组名开头,在我们的例子中是 john。
- /etc/gshadow 文件的密码字段中出现一个感叹号,用于锁定组。
- 管理员用户名的逗号分隔列表。这些用户无需输入密码即可访问该组。
- 逗号分隔的成员用户名列表。成员无需输入密码即可访问该组。
5. 创建用户家目录,复制/etc/skel目录下的文件。
在 /home 目录中为用户 john 创建了一个目录。
该目录归用户 john 和组 john 所有。
但是,它仅对用户 john 具有读、写和执行权限。
所有其他权限都被拒绝。
/etc/skel 目录中的文件(包含默认用户设置)被复制到新的 /home/john 目录中。
以下是用户在 Linux 服务器上执行“useradd”命令时在后台执行的步骤的汇总流程图。
日期:2020-09-17 00:14:14 来源:oir作者:oir