📜  Linux 中的 passwd 命令示例

📅  最后修改于: 2022-05-13 01:57:34.103000             🧑  作者: Mango

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 命令中处理:

  1. 验证当前用户密码:一旦用户输入 passwd 命令,它会提示输入当前用户密码,该密码将根据 /etc/shadow 文件中存储的密码进行验证。 root用户可以跳过这一步,直接修改密码,忘记密码可以找回来。
  2. 验证密码过期信息:在 Linux 中,可以将用户密码设置为在给定的时间段后过期。此外,可以禁止用户在一段时间内更改他/她的密码。此密码时效信息(以及密码本身)存储在文件 /etc/shadow 中。
  3. 更改密码:验证后,提示用户输入新密码,并通过重新输入密码进行验证。


    /etc/shadow文件: shadow文件是一个冒号分隔的值列表,有9个字段,如下图:

    • 字段 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 后,密码将过期,用户将被强制更改密码。