如果您正在管理 Linux 服务器,则很可能有很多用户帐户需要管理,除此之外,还有许多文件和设置需要控制。下面是一些在设置和管理用户帐户和访问权限时很重要的命令和问题。
处理身份证
首先,在管理用户帐户时,您需要了解用户 ID (UID) 和组 ID (GID)。大多数帐户都是每个用户都是与用户帐户同名的组的唯一成员。实际上,两者都是在使用 useradd 命令创建帐户时设置的。当您列出用户的主目录时,您应该看到如下所示的内容:
$ ls -ld /home/dbell
drwxr-xr-x. 8 dbell dbell 4096 Mar 23 2021 /home/dbell
^ ^
| |
user group
请注意,用户名和组名都是“dbell”。若要查看这些值的数值等效值,请改用如下命令:
$ ls -ldn dbell
drwxr-xr-x. 8 1003 1003 4096 Mar 23 2021 dbell
^ ^
| |
UID GID
用户名和组名的数值均为 1003。显示的信息派生自 /etc/passwd 和 /etc/group 文件,这些文件将名称与其数值连接起来。
$ grep dbell /etc/passwd /etc/group
/etc/passwd:dbell:x:1003:1003:Dana Bell:/home/dbell:/bin/bash
/etc/group:dbell:x:1003:
处理重要文件
管理用户帐户时需要处理的一些最重要的文件是 /etc/passwd、/etc/shadow 和 /etc/group 文件。 如上所示,/etc/passwd 和 /etc/group 文件保存 UID 和 GID 以及用户的主目录。用户所属的任何组(包括其个人组)都存储在 /etc/group 文件中。/etc/shadow 文件包含密码哈希和老化参数,可确保密码安全,并可以强制用户定期更改密码。
这些条目是在使用 useradd 命令时设置的,该命令将行添加到 /etc/passwd 文件、/etc/group 文件和 /etc/shadow 文件。
$ sudo useradd newuser
$ sudo grep newuser /etc/passwd /etc/group /etc/shadow
/etc/passwd:newuser:x:1019:1019::/home/newuser:/bin/bash
/etc/group:newuser:x:1019:
/etc/shadow:newuser:!!:19372:0:99999:7:::
请注意,sudo 是创建帐户和查看 /etc/shadow 文件所必需的。
将自动为用户帐户分配新帐户的 UID 下一个可用编号。在大多数 Linux 系统上,第一个用户帐户的值为 1000,每个额外的用户将比前一个用户高一个。具有较小值的 UID 是系统帐户。如上述输出中的底行所示,最初设置帐户时没有密码哈希。该字段将显示为 !! ,直到分配密码。设置密码时,表示密码哈希的长字符串将取代两个感叹号。
系统管理员通常会为新用户设置一个临时密码,然后使用如下所示的第二个 sudo 命令使该密码过期,然后要求用户在首次登录时设置新密码。这样,只有用户知道帐户的密码。
$ sudo passwd newuser
New password:
Retype new password:
$ sudo passwd -e newuser
/etc/passwd 文件中的第五个(以冒号分隔)字段用于用户的全名和/或说明,通常称为注释字段。
这可以在创建帐户时添加,也可以稍后使用 usermod -c 命令添加。另一方面,使用超级用户权限,您只需编辑 /etc/password 文件即可添加全名。
$ sudo usermod -c “Dana Bell” dbell
$ grep dbell /etc/passwd
dbell:x:1003:1003:Dana Bell:/home/dbell:/bin/bash
^
|
username or description
若要在最初设置帐户时包含全名,请使用如下命令:
$ sudo useradd -c “Dana Bell” dbell
删除用户帐户
虽然 useradd 命令用于创建帐户,并且 usermod 命令允许您对帐户进行更改,但 userdel 命令可用于删除帐户。但是,重要的是要了解,userdel 命令不会删除用户的主目录,除非您包含如下所示的 -r 选项:
$ sudo userdel newuser -r
查看用户设置
虽然使用 grep 从 /etc/passwd 和 /etc/group 文件中提取信息很容易,但另一个用于提取有关用户帐户信息的非常有用的命令是 id 命令,它显示 UID、GID 和组成员身份是一种非常方便的格式。
$ id newuser
uid=1019(newuser) gid=1019(newuser) groups=1019(newuser)
$ id shs
uid=1000(shs) gid=1000(shs) groups=1000(shs),10(wheel),900(techs)
将用户添加到辅助组l
usermod 命令还提供了将用户添加到辅助组的方法。为此,请使用如下所示的命令,将用户添加到技术人员组。然后,可以使用 id 命令来验证更改。
$ sudo usermod -a -G techs newuser
$ id newuser
uid=1019(newuser) gid=1019(newuser) groups=1019(newuser),20(techs)
总结
Linux 使设置、更改和删除帐户变得非常容易,但您确实需要了解一些重要命令才能正确管理用户帐户和用户权限。
l