用户管理工具
100%

用户管理 · 第 6 课

用户管理工具

学习如何使用明确选项创建、修改、保护、验证和删除本地账户。

Linux 发行版通常提供 shadow 工具套件中的账户工具,但默认值和更高层封装程序各不相同。更改本地账户前,请确认它不是集中管理的,阅读该命令的本地手册,并保留恢复路径。

本课中的命令会改变认证和所有权状态。只能在获准的可丢弃环境中练习,不要在生产主机上练习。

审查账户创建默认值

useradd 会使用命令选项和站点默认值创建本地账户。使用以下命令检查编译和配置的默认值:

$ useradd -D

/etc/default/useradd/etc/login.defs 和骨架目录内容等文件可能影响行为,但其作用因发行版而异。系统可能提供更高层的 adduser 命令,但其界面并未在所有 Linux 系统中标准化。

明确创建本地账户

在受控环境中,应指定重要属性,而不是依赖未知默认值:

$ sudo useradd -m -s /bin/bash -c "Bob Example" bob
  • -m 请求创建主目录。
  • -s /bin/bash 在确认该路径获准且已安装后选择登录 shell。
  • -c 提供 GECOS/注释字段。

新账户通常要设置可用的本地密码后才能认证,但确切的初始密码和锁定状态取决于本地工具与策略。应验证记录,而不是想当然:

$ getent passwd bob
$ sudo passwd -S bob
$ id bob

哪个 useradd 选项会明确请求创建新账户的主目录?

设置或更改密码

普通用户使用交互式命令更改自己的本地密码:

$ passwd

获准的管理员可以设置另一个本地账户的密码:

$ sudo passwd bob

只能在受保护的提示中输入密码,不要把密码放入命令参数、shell 历史、课程笔记或聊天。PAM 策略可能拒绝弱密码或重复使用的密码。目录服务管理的账户可能需要其他工具。

哪个命令通常让当前用户通过交互式提示更改自己的密码?

修改账户属性和组

usermod 会更改本地账户字段。例如:

$ sudo usermod -s /bin/zsh bob
$ sudo usermod -d /srv/home/bob -m bob
$ sudo usermod -aG developers bob

移动主目录前,应验证目标、所有权、可用空间、正在运行的进程、挂载和服务。对于附加组,-aG 表示追加到当前列表。使用 -G 而省略 -a 会替换整个附加组列表,并可能意外移除访问权限。

组更改通常影响新的登录会话,而不是已在旧凭据集合下运行的进程。

哪个命令会把 bob 加入附加组 developers,而不替换他的其他附加成员身份?

锁定本地密码

管理员可以使用 passwd -l USER 锁定本地密码哈希,并用 passwd -S USER 检查状态。只有审查锁定原因并确认仍有有效哈希后,才能使用 passwd -u USER 解锁。

密码锁定不一定会阻止 SSH 密钥、令牌、计划任务、已经运行的进程或服务特定认证。要全面禁用账户,应先定义威胁和访问路径,再应用协调策略,其中可能包括账户过期、登录 shell、服务访问、密钥和会话终止。

passwd -l bob 主要锁定什么?

有意删除本地账户

普通 userdel bob 会删除本地账户记录,但通常会保留主目录。userdel -r bob 还会尝试删除主目录和邮件 spool,因此属于破坏性操作。

执行任何删除前:

  1. 使用 getent passwd bobid bob 确认准确账户。
  2. 找出正在运行的进程、计划任务、服务、密钥和委派访问。
  3. 盘点预期文件系统中由该 UID 拥有的文件。
  4. 决定数据应转移、归档、保留还是安全删除。
  5. 确认仍有孤立文件时不会重新分配该 UID。

userdel -r 不保证删除配置主目录和邮件位置之外的文件。账户删除也可能留下文件的数值所有权、数据库权限、应用身份和远程目录记录。

与普通 userdel bob 相比,常见的 userdel -r bob 还会请求删除什么?

要在隔离环境中练习账户生命周期,可以尝试以下动手实验:

  1. 使用 useradd、usermod 和 userdel 管理 Linux 用户账户 - 练习用户管理的完整生命周期,从创建和保护新账户到修改和删除账户。
  2. 使用 groupadd、usermod 和 groupdel 管理 Linux 组 - 练习添加、修改和删除组的核心组管理命令行工具。
  3. 在 Linux 中配置用户账户和 Sudo 权限 - 学习管理用户账户和 sudo 权限的重要技术,增强 Linux 系统安全性。

课程已完成

你已完成 用户管理工具

现在,你可以用明确范围和验证来管理本地账户。

  • 创建前审查 useradd 默认值。

  • 明确请求主目录、shell 和元数据设置。

  • 只通过受保护的提示更改密码。

  • 追加附加组,而不替换现有列表。

  • 执行破坏性删除前盘点身份依赖关系。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
返回 用户管理