Linux 中的 passwd 命令示例
Linux 中的passwd命令用于更改用户帐户密码。 root 用户保留对系统上任何用户更改密码的权限,而普通用户只能更改自己帐户的帐户密码。
句法:
passwd [options] [username]
例子:
Command: passwd
Command [root]: passwd user1
注意: sudo 可用于普通用户调用root权限,并可自行修改root密码。当用户是 admin 组的成员(在 sudoers 列表 (/etc/sudoers) 中占有一席之地并且可以使用带有 sudo 的命令)并且没有设置 root 密码时,这特别有用,这是许多常见的 linux 发行版的情况。
Command: sudo passwd root
在 passwd 命令中处理:
- 验证当前用户密码:一旦用户输入 passwd 命令,它会提示输入当前用户密码,该密码将根据 /etc/shadow 文件中存储的密码进行验证。 root用户可以跳过这一步,直接修改密码,忘记密码可以找回来。
- 验证密码过期信息:在 Linux 中,可以将用户密码设置为在给定的时间段后过期。此外,可以禁止用户在一段时间内更改他/她的密码。此密码时效信息(以及密码本身)存储在文件 /etc/shadow 中。
- 更改密码:验证后,提示用户输入新密码,并通过重新输入密码进行验证。
/etc/shadow文件: shadow文件是一个冒号分隔的值列表,有9个字段,如下图:user1:$6$x8wAJRpP$EWC97sXW5tqac10Q2TQyXkR.1l1jdK4VLK1pkZKmA2mbA6UnSGyo94Pis074viWBA3sVbkCptSZzuP2K.y.an/:17887:0:99999:7:::
- 字段 1:用户名。
- 字段 2:加密密码。
- 字段 3:从 1970 年 1 月 1 日到上次更改密码的天数。
- 字段 4:密码不能更改的最少天数。 (值 0 表示可以随时更改)。
- 字段 5:必须更改密码后的天数。 (值 99999 表示密码永不过期)。
- 字段 6:警告用户密码过期的天数。
- 字段 7:密码过期后帐户被禁用的天数。
- 字段 8:从 1970 年 1 月 1 日到帐户被禁用之日的天数。
- 字段 9:该字段保留供将来可能使用。
密码选项:
- -d, –delete:此选项删除用户密码并使帐户无密码。
- -e, –expire:此选项立即使帐户密码过期并强制用户在下次登录时更改密码。
- -h、-help:显示passwd 命令的相关帮助。
- -i, –inactive INACTIVE_DAYS:此选项后跟一个整数 INACTIVE_DAYS,它是密码过期后帐户将被停用的天数。
example: passwd -i 3 user1
- -k, –keep-tokens:当您只想在密码过期时更改密码时使用此选项。如果密码尚未过期,它会保留用于身份验证的身份验证令牌,即使您请求更改它也是如此。请注意,如果用户的到期时间设置为 99999,则此选项将不会保留令牌并且密码将被更改。
- -l, –lock:锁定用户密码。这会在用户的加密密码后附加一个字符“!”,从而使其无法与任何输入密码组合匹配。这不会禁用帐户,但会阻止用户使用密码登录。尽管可以使用其他身份验证方法(如 ssh 密钥)登录帐户。
- -n, –mindays MIN_DAYS:将密码更改之间的最小天数更改为 MIN_DAYS,以便用户无法更改 MIN_DAYS 的密码。
- -q, –quiet:此选项用于安静模式。使用此选项更改密码时,通常在更改密码之前打印的消息“Changing password for $user.”不会得到回显。
- -r, –repository REPO:此选项用于更改名为“REPO”的存储库的密码。
- -R, –root CHROOT_DIR:应用 CHROOT_DIR 目录中的更改并使用 CHROOT_DIR 目录中的配置文件。这基本上是改变了passwd进程的根目录一次,由于CHROOT_DIR是根的子目录,所以无法访问CHROOT_DIR之外的配置文件。
- -S, –status:以如下格式显示用户的密码状态(7个字段):
user1 P 12/22/2018 0 99999 7 3
第一个字段是用户的登录名。第二个字段指示用户帐户是否有锁定密码 (L)、没有密码 (NP) 或有可用密码 (P)。第三个字段给出上次更改密码的日期。接下来的四个字段是密码的最短期限、最长期限、警告期限和不活动期限。这些年龄以天数表示。
-S [, –status] -a [, –all]:此选项组合显示所有用户的密码状态。请注意,如果没有 -S 选项,则不能使用 -a 或 –all。
- -u, –unlock:解锁账户密码。
- -w, –warndays WARN_DAYS:该选项用于更改密码到期前的天数,显示密码到期警告。
- -x, –maxdays MAX_DAYS设置密码保持有效的最大天数。 MAX_DAYS 后,密码将过期,用户将被强制更改密码。