Ict-innovation/LPI/107.1
候选人应该能够添加、删除、暂停和更改用户帐户。
关键知识领域
- 添加、修改和删除用户和组。
- 管理用户/组信息在密码/组数据库中。
- 创建和管理特殊用途和有限帐户。
Linux 是一个多用户环境。每个用户属于一个主组(通常作为默认值创建),并且可能属于其他组。Linux 中文件的归属权与用户 ID 和组密切相关。主题 107.1 为您准备学习如何添加、删除和管理用户和组。您还将了解 文件在/etc中存储了用户和组信息。
/usr/sbin/useradd 命令将新用户添加到系统中,符号链接 adduser 指向它。
语法:useradd [选项] 登录名
示例:添加一个登录名为 brian 的用户
useradd brian |
未指定任何选项时将使用默认值。您可以使用 useradd –D 列出这些值。
使用useradd –D
GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel
列出的默认选项
注意:此信息也位于 /etc/default/useradd 文件中 id 命令可用于显示有关用户的基本信息,例如他们的用户 ID、他们的组以及他们可能属于的任何其他组。
# id brian uid=503(brian) gid=503(brian) groups=503(brian) |
要允许用户访问其帐户,管理员必须使用 passwd 工具为用户分配密码。 工具。
语法:passwd 登录名
按 Enter 键后,系统将提示您输入密码。现在用户 brian 拥有一个密码。由于用户是使用 useradd 命令的默认设置创建的,因此用户的环境(例如主目录、默认 shell 和他的主组)都已设置。
useradd (选项)
-c | 注释(全名) |
-d | 主目录路径 |
-g | 初始组 (GID)。GID 必须已经存在 |
-G | 以逗号分隔的辅助组列表 |
-u | 用户的 UID |
-s | 用户的默认 shell |
-p | 密码(md5 加密,使用引号!) |
-e | 帐户过期日期 |
-k | skel 目录 |
-n | 关闭 UPG 组方案 |
每个新用户都分配到一个初始(或主)组。存在两种约定。
传统上,此主组对所有用户都相同,称为 users,组 ID (GID) 为 100。许多 Linux 发行版都遵循这种约定,例如 Suse 和 Debian。
用户私有组方案 (UPG) 由 RedHat 引入,它改变了这种约定,而不会改变 UNIX 组的工作方式。使用 UPG,每个新用户都属于他们自己的主组。该组与登录名(默认)具有相同的名称,并且 GID 在 500 到 60000 的范围内(与 UID 相同)。
注意:使用传统的组方案时,用户的umask (见 LPI 101)设置为022,而在 UPG 方案中,umask设置为002.
属于组
用户可以属于任意数量的组。但是,在任何时间(例如创建文件时),只有一个组是有效组。
用户所属所有组的列表可以通过groups或id命令获得。
用户 root 的示例
id |
uid=0(root) gid=0(root) groups=0(root), 1(bin), 2(daemon), 3(sys), 4(adm), 6(disk), 10(wheel), 600(sales) |
groups |
root bin daemon sys adm disk wheel sales |
加入组
加入组会更改用户的有效组,并开始一个新的会话,用户可以从该会话中注销。这是使用 newgrp 命令完成的。该组应该已经存在。
示例:加入ict 组
newgrp ict |
如果发出 groups 命令,列表中的第一个组将不再是root 而是ict。
创建和删除组
groupadd 工具用于添加新组。它将在/etc/group文件中添加一个条目。
示例:创建 devel 组
groupadd devel |
groupadd (选项)
-g | 分配 GID |
groupdel 工具用于删除组。这将删除/etc/group文件中添加一个条目。
示例:删除 devel 组
[[Image:]]groupdel devel |
将用户添加到组
可以使用gpasswd工具执行管理任务。可以添加(-a)或删除(-d)组中的用户,并分配管理员(-A)。该工具最初设计用于在组上设置单个密码,允许同一组的成员使用相同的密码登录。出于安全原因,此功能不再有效。
示例:将 andrew 添加到 devel 组
gpasswd -a andrew devel |
配置文件
注意:此信息也位于 /etc/default/useradd 文件中/etc/passwd和/etc/shadow文件:
系统中所有用户的名称都保存在/etc/passwd中。此文件具有以下结构
# 登录名
7. 用户的 shell |
这 7 个字段由冒号分隔。如下面的示例所示。
george:$1$K05gMbOv$b7ryoKGTd2hDrW2sT.h:Dr G Micheal:/home/georges:/bin/bash |
Shadow 密码
为了将加密密码隐藏在普通用户之外,您应该使用 shadow 文件。然后,/etc/shadow文件包含用户名和加密密码,并且只有 root 可以读取。
如果没有 shadow 文件在/etc中,您应该发出以下命令
/usr/sbin/pwconv (passwd -> shadow) |
这将在/etc/passwd的第二个字段中留下一个“x”,并创建 /etc/shadow 文件。如果您不想使用 shadow 密码,可以使用
/usr/sbin/pwunconv (shadow -> passwd) |
注意:使用 shadow 密码文件时,/etc/passwd文件可能是世界可读的(644),并且 /etc/shadow 文件必须限制更多(600 甚至 400)。但是,使用 pwunconv 时,请确保更改/etc/password (600 或 400)的权限。
注意:此信息也位于 /etc/default/useradd 文件中/etc/group和gshadow files:
同样,有关组的信息保存在/etc/group中。此文件有 4 个字段,由冒号分隔。
# 组名
|
示例/etc/group条目
java:x:550:jade, eric, rufus |
与用户一样,有一个/etc/gshadow文件,它在使用 shadow 组密码时创建。用于在 shadow 文件和非 shadow 文件之间来回切换的实用程序如下
/usr/sbin/grpconv 创建 /etc/gshadow 文件
|
/usr/sbin/grpunconv 删除 gshadow 文件 |
/etc/login.defs和/etc/skel/ 文件
注意:此信息也位于 /etc/default/useradd 文件中/etc/login.defs文件包含以下信息
- 邮件存储目录:MAIL_DIR
- 密码老化控制:PASS_MAX_DAYS、PASS_MIN_DAYS、PASS_MAX_LEN、PASS_WARN_AGE
- useradd 中自动 UID 选择的最大/最小值:UID_MIN、UID_MAX
- groupadd 中自动 GID 选择的最大/最小值:GID_MIN、GID_MAX
- 使用 useradd 自动创建主目录:CREATE_HOME
注意:此信息也位于 /etc/default/useradd 文件中/etc/skel目录包含将在创建新用户时复制到用户主目录的默认文件.bashrc、.bash_profiles、…这些可以通过查看用户主目录中的隐藏文件来查看。
在创建用户或组时,所有可用选项都可以修改。可以使用usermod实用程序具有以下主要选项
usermod (选项)
-d | 用户目录 |
-g | 用户初始 GID |
-l | 用户的登录名 |
-u | 用户的 UID |
-s | 默认 shell。 |
注意这些选项与以下选项相同useradd.
在下面的示例中,用户 brian 已重命名为 user2,其 shell 现在为 TurboC shell,其主目录也已更改。
# usermod -l user2 -s /bin/tcsh -d /home/user2 brian |
同样,您可以使用以下命令更改有关组的详细信息groupmod 实用程序。主要有两个选项
-g | GID |
-n | 组名。 |
锁定帐户
可以通过在用户密码前添加感叹号来锁定用户的帐户。这也可以使用以下命令行工具完成
锁定 | 解锁 |
passwd -l | passwd -u |
usermod -L | usermod -U |
使用影子密码时,将x替换为* 。一个不太有用的选项是使用以下命令完全删除密码passwd -d。最后,还可以分配/bin/false到用户的默认 shell 中/etc/passwd.
更改密码过期日期
默认情况下,用户的密码有效期为 99999 天,即 273,9 年(默认 PASS_MAX_DAYS)。系统会提前 7 天提醒用户其密码即将过期(默认 PASS_WARN_AGE),当用户登录时会显示以下消息
警告:您的密码将在 6 天后过期
还有另一个密码老化策略编号称为 PASS_MIN_DAYS。这是用户可以更改其密码的最短天数;默认情况下设置为零。
注意:此信息也位于 /etc/default/useradd 文件中chage tool 允许管理员更改所有这些选项。
用法chage [-l] [-m min_days] [-M max_days] [-W warn] [-I inactive] [-E expire] [-d last_day] user
第一个选项–l 列出用户的当前策略值。我们将仅讨论–E 选项。这会在给定日期锁定帐户。日期以 UNIX 天数或 YYYY/MM/DD 格式表示。
注意,所有这些值都存储在/etc/shadow 文件中,并且可以直接编辑。
删除帐户
可以使用以下命令删除用户的帐户 userdel 命令。若要确保用户的 home 目录也被删除,请使用-r 选项。
userdel -r jade |
专用帐户
root 的用户 ID 为 0,而其他一些用户的用户 ID 从在/etc/login.defs 中设置的 UID_MIN 值开始,通常设置为 500 或 1000。
root 不是 Linux 系统上唯一的专用帐户。还有其他一些帐户用于守护进程,例如邮件、SSH、FTP、新闻等。这些帐户可以从以下文件查看/etc/passwd 文件.
ntp:x:38:38::/etc/ntp:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news: nobody:x:99:99:Nobody:/:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin |
可以想象,无法通过常规登录访问专用帐户。它们有助于控制文件和守护进程,因此具有特殊的登录 shell /sbin/nologin,或者/bin/false。对这些 shell 的任何登录尝试都会自动失败。
以下是已使用文件、术语和实用程序的部分列表。* /etc/passwd
- /etc/shadow
- /etc/group
- /etc/skel
- chage[检查拼写]
- groupadd
- groupdel
- groupmod
- passwd
- useradd
- userdel
- usermod