目录
59. shell命令--passwd
功能说明
passwd 命令在 Linux 系统中用于更新用户密码。这个命令对于普通用户和超级用户(root)都有用,但它们的权限和用途略有不同。
passwd 命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
语法格式
passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
SYNOPSIS
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warn-
days] [-i inactivedays] [-S] [--stdin] [username]
选项说明
-d 删除密码,仅有系统管理者才能使用
-f 强迫用户下次登录时必须修改口令
-w 口令要到期提前警告的天数
-k 更新只能发送在过期之后,设置只有在密码过期失效后,方能更新
-l 停止账号使用,锁住密码
-S 显示密码信息,列出密码的相关信息,仅有系统管理者才能使用
-u 启用已被停止的账户,解开已上锁的帐号
-x 指定口令最长存活期
-n 指定口令最小存活期
-g 修改群组密码
指定口令最短存活期
-i 口令过期后多少天停用账户
实践操作
1. 为其他用户设置密码(需要root权限)
whoami
useradd usertest1
tail -1 /etc/passwd
tail -1 /etc/shadow
passwd usertest1
tail -1 /etc/shadow
2. 列出密码的相关信息,仅有系统管理者才能使用
passwd -S usertest1
3. 更新当前用户的密码
su - usertest1
whoami
passwd #普通用户会提示输入当前密码后才能设置新密码,并且密码复制度较高
# 演示时可以再开个终端随便输入字符串进行复制粘贴
(current) UNIX password: # 请输入当前密码;
New password: # 请输入新密码;
Retype new password: # 确认新密码;
exit
4. 设定用户密码值,可以用 -l 选项来锁定,-u 选项来解锁,-e 选项强制重置密码
hostname -I
grep usertest1 /etc/shadow
passwd -l usertest1
grep usertest1 /etc/shadow
ssh usertest1@10.4.7.11
passwd -u usertest1
ssh usertest1@10.4.7.11
whoami
exit
grep usertest1 /etc/shadow
passwd -e usertest1
grep usertest1 /etc/shadow
ssh usertest1@10.4.7.11
5. 清除某个用户密码
grep usertest1 /etc/shadow
passwd -d usertest1
grep usertest1 /etc/shadow #Empty password:空密码
passwd -S usertest1
# 注意:当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意。
6. 非人工交互设置密码
echo "123456" |passwd --stdin usertest1
注意事项
- 密码复杂性
出于安全考虑,大多数现代 Linux 系统都会要求用户密码满足一定的复杂性要求,如包含大写字母、小写字母、数字和特殊字符,以及密码的最小长度。
- 密码过期
系统管理员可以配置密码过期策略,要求用户定期更改密码。使用 passwd -S 可以查看密码的过期信息。
- 密码存储
Linux 系统使用加密哈希来存储密码,而不是明文。因此,即使系统管理员也不能直接看到你的密码,只能重置它。
- 密码策略
系统管理员可以配置各种密码策略,包括密码的最小长度、密码的历史记录、密码的复杂度要求等,以符合组织的安全策略。
- 定期审计密码策略
确保密码策略符合当前的安全标准和组织要求。这可能包括密码的最短长度、复杂度要求、密码历史记录(防止重用旧密码)等。
- 启用密码过期和提醒
设置密码过期时间,并配置系统在密码即将过期时提醒用户。这有助于确保用户不会使用太久的密码,减少安全风险。
- 使用多因素认证
虽然 passwd 命令主要关注密码管理,但考虑到现代安全威胁,推荐使用多因素认证(MFA)来增加额外的安全层。
- 培训和意识提升
教育用户关于强密码的重要性,以及如何创建和保持安全的密码习惯。
- 日志记录和监控
确保对 passwd 命令的使用进行日志记录,并监控任何异常活动,以便及时发现潜在的安全威胁。
- 使用加密的密码管理工具
对于需要频繁管理大量密码的场景,考虑使用加密的密码管理工具,如 KeePassX、LastPass 或 1Password,以更安全地存储和访问密码。