Linux账户管理最佳实践
2025.12 天津·天津中医药大学
对于 Linux 用户,尤其是新手来说,安全账户管理比以往任何时候都更加紧迫。强密码和智能管理不仅仅是建议——它们是在黑客自动化攻击和新漏洞几乎每天都在发生的背景下您的第一道有效防线。
在本指南中,我们将为您介绍在 Linux 上设置密码的不同方法。我们将从简单方法开始,然后过渡到自动化脚本,甚至涵盖企业环境中使用的专业级方法。到结束时,您将能够自信且安全高效地管理密码。
安全地创建用户帐户
第一步是为用户创建一个包含主目录和默认 shell 的账户:
1 | sudo useradd -m -s /bin/bash newuser |
Explanation: 解释:
m→ Creates a home directory for the userm→ 为用户创建主目录s /bin/bash→ Sets the default shells /bin/bash→ 设置默认 shell
You can check the account:
你可以检查账户:
1 | id newuser |
强密码是必须的
强密码不仅仅是复杂性,它还关乎不可预测性和长度。如今的攻击者使用密码列表和暴力破解工具,每秒可以测试数十亿次的猜测。像 BlueSky$2025! 这样的密码看起来很强,但它遵循了人类模式——单词+年份+符号——这使得它变得可预测。一个更好的密码看起来是随机的,例如:R7@hDpXv9Q!2
对于现代系统,12-16 个字符现在是安全密码的新基准。您可以在 RHEL 9 上使用以下命令检查系统的密码策略:
1 | cat /etc/security/pwquality.conf |
此文件定义了如下值:
minlen→ Minimum password lengthminlen→ 最小密码长度minclass→ Required character diversityminclass→ 所需字符多样性
您可以直接在终端中生成一个:
1 | tr -dc 'A-Za-z0-9!@#$%^&*' < /dev/urandom | head -c12 |
让我们快速分解一下:
- tr -dc ‘A-Za-z0-9!@#$%^&*’:这个命令用于过滤随机数据,仅保留字母、数字和一些常见符号。
- < /dev/urandom:它从一串随机数据中获取输入。
- | head -c12:这仅获取前 12 个字符。
结果是随机生成的 12 字符字符串。你可以自由地将 12 更改为任何你需要的长度!
认识 PASSWD命令
单用户密码管理
在 Linux 密码方面, passwd 是您的首选工具。它具有交互性,非常适合一次处理一个用户。
定期更新您的凭证是一个明智的习惯。这很简单:
- Open your terminal. 打开您的终端。
- 输入
passwd并按 Enter 键。 - 当提示时输入您的当前密码。
- 输入您的新密码,然后确认它。
就这样! passwd 确保您输入的新密码正确无误。
管理其他用户密码
如果你拥有 sudo 或 root 权限,你可以为其他用户设置或重置密码。这在有人忘记密码或你正在设置新账户时很有用。
在命令中添加 sudo :
1 | sudo passwd <username> |
例如,要更改名为 Alex 的用户密码:
1 | sudo passwd alex |
因为你在使用 sudo ,所以不需要 Alex 的旧密码。系统将直接提示你输入并确认一个新密码。
自动化管理密码
passwd 非常适合一次性更改,但它需要交互操作。如果你需要一次性为多个用户设置密码或在脚本中设置, chpasswd 就非常适用。
它以简单的 username:password 格式读取输入。例如:
1 | echo 'bella:ThisIsAStrongPassword123!' | sudo chpasswd |
无需提示,无需麻烦。Bella 的密码立即设置完成。chpasswd 是自动化和批量用户管理的变革者。为了最大程度的安全,你可能永远不想在你的脚本中处理明文密码。相反,你可以使用预哈希密码,并告诉 chpasswd 输入已经使用 -e 标志加密过了。
1 | echo 'test:$6$rounds=100000$lEsRRO/bBCaL.Xnl$sOZ018XCqYjHp4ANWCUjKMLF1W/1PQ.0JmiaBwpHvmm71yvmg0Jr0zHlBd1' | sudo chpasswd -e |
让我们来分解一下:
test:→ 用户名$6$→ 告诉 Linux 这是一个 SHA-512 哈希值rounds=100000$→ 散列算法运行了 100,000 次lEsRRO/bBCaL.Xnl$→ “盐”,即使密码相同,也能使每个散列值唯一sOZ018XCq...→ 最终的哈希密码-e标志指示chpasswd密码已经加密。
与 passwd -e (它会过期密码)不同, chpasswd -e 直接跳过哈希处理,直接设置存储的哈希值。
强制首次登录必须变更密码
即使你设置了临时密码,最佳实践是强制用户在首次登录时更改密码。
你可以通过以下方式完成:
passwd -e– 立即过期密码chage -d 0– 将最后密码更改日期设置为 0,强制更新
使用 chage 的示例:
1 | Step 1: 设置临时密码 |
在脚本中使用 chage 是明确的,无论密码是设置为明文还是预散列,它都能正常工作。
超越密码保护账户
强密码只是第一层。Linux 提供了多种方法来进一步加强账户安全。
1 | 锁定非活动账户,防止在不删除账户的情况下登录。 |
结合这些设置与强密码策略,可为您提供分层保护——这正是良好安全性的核心所在。
再次检查您的设置
创建用户后,始终验证所有配置是否符合预期。
1 | 检查密码状态 |
如果该账户仅用于有限用途,可以考虑完全禁用密码登录,并切换到 SSH 密钥认证,以实现更安全、更易于管理的方案。
使用脚本整合所有内容
这是一个包含所有内容的完整 Bash 脚本:
1 | !/bin/bash |
总结
从交互式 passwd 到自动化 chpasswd 以及使用 -e 的预哈希密码,您现在拥有完整的工具集,用于安全的 Linux 用户管理。结合强制首次登录更改,您的用户和系统将更加安全。
原文链接:Securely Adding Users in Linux: Best Practices for Safe Accounts






