首页 > 代码库 > Linux -- passwd

Linux -- passwd

PASSWD(1)                                                             用户命令                                                            PASSWD(1)

名称
       passwd - 更改用户密码

大纲
       passwd [选项] [登录]

描述
       passwd 命令用来更改用户账户的密码。普通用户通常只更改其自己账户的密码,而超级用户可以更改任何账户的密码。passwd
       也更改账户或相关的密码有效期。

   密码更改
       如果有旧密码,首先提示用户输入旧密码。加密这个密码然后和存储的密码进行比较。用户只有一次机会输入正确密码。允许超级用户略过这个步骤,以便更改忘记
了的密码。

       输入了密码之后,会检查密码年龄信息,以查看此时是否允许用户更改密码。如果不允许,passwd 拒绝更改密码,然后退出。

       提示用户输入两次新密码。第二次和第一次进行比较,并且需要相同才能更改密码。

       然后,测试密码的负责程度。一般来讲,密码应该包含 6 到 8 位字符,从下边的一个或多个集合中选择:

       ·   小写字母

       ·   数字 0 到 9

       ·   标点符号

       必须要留意不能包含系统默认的擦除和杀死字符。passwd 会拒绝复杂度不满足要求的密码。

   关于用户密码的提示
       密码的安全性依赖于加密算法的强度和密钥空间的大小。旧的 UNIX 系统加密算法基于 NBS DES 算法。推荐使用更新的算法(查看
       ENCRYPT_METHOD)。密钥空间的大小依赖于选择的密码的随机性。

       由于粗心地或处理选择密码,会危及密码的安全。由于这个原因,您不应该选择出现在词典中或者必须要写下来才能记住的密码。密码也不应该是一个名字、许可证
号、生日或者街道号。所有这些可以用于猜测来损害系统安全。

       您可以在在 http://zh.wikipedia.org/zh-cn/密码强度 找到怎样选择强壮密码的建议。

选项
  passwd 命令可以接受的选项有:

********************************************************************************************************************
       -a, --all
           此选项只能和 -S 一起使用,来显示所有用户的状态。

       -S, --status
           显示账户状态信息。状态信息包含 7 个字段。首个字段是用户的登录名,第二个字段表示用户账户是否已经锁定密码(L)、没有密码
           (NP)或者密码可用(P),第三个字段给出最后一次更改密码的日期。接下来的四个字段分别是密码的最小年龄、最大年龄、警告期和禁用期。这些年龄以天为单
位计算。

           -n   -x     -w  -i 

 ***********************************************************************************************************************

       -n, --mindaysMIN_DAYS
            在密码更改之间的最小天数设置为 MIN_DAYS。此字段中的 0 值表示用户可以在任何时间更改其密码

*************************************************************************************************************************

       -d, --delete
           删除用户密码(让它为空)。这是禁用一个用户密码的快速方法。它将设置给出名称的账户。

 

       -l, --lock
           锁定指定账户的密码。此选项通过将密码更改为一个不可能与加密值匹配的值来禁用(它在密码开头添加一个“!”)。

           注意,这并没有禁用此账户。用户仍然可以通过其它认证方式(如 SSH 密码)来登录。要禁用此账户,管理员需要使用 usermod --expiredate 1
           (设置账户的过期时间为1970年1月2日)。

           被锁定了密码的用户不允许更改密码。


       -u, --unlock
           解锁指定用户的密码。此操作通过将密码改回先前值(改回使用 -l 之前的值)重新启用密码。

 

************************************************************************************************************************
       -e, --expire
           让一个账户的密码立即过期。这可以强制一个用户下次登录时更改密码。

    #等同于 -x 0


       -x, --maxdaysMAX_DAYS
           设置密码仍然有效的最大天数。MAX_DAYS 之后,密码会要求更改。

         -w, --warndaysWARN_DAYS
               设置在要求更改密码之前警告的天数。WARN_DAYS 选项是在密码过期之前提前警告的天数。


         -i, --inactiveINACTIVE
              此选项用于在密码过期一定天数之后禁用账户。一个用户账户密码已经过期 INACTIVE 天之后,用户将不能再登录进账户。

每次修改密码之间的间隔是7天,8天后密码必须强制修改,提前警告时间是3天,密码过期7天后账户失效

**********************************************************************************************************************
       -h, --help
           现实帮助信息并退出。


       -k, --keep-tokens
           表示密码更改只应该因为认证口令(密码)过期更改。用户希望保持他们尚未过期的口令。




       -q, --quiet
           安静模式。

       -r, --repositoryREPOSITORY
           在 REPOSITORY 中更改密码

       -R, --rootCHROOT_DIR
           Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.



CAVEATS
       密码复杂性检查在每台机器间不同。用户应该选择适合的尽量复杂的密码。

       在启动了 NIS 的系统上,如果没有登录 NIS 服务器,用户或许不能更改自己的密码。

       passwd 使用 PAM 来认证用户以及更改密码。

文件
       /etc/passwd
           用户账户信息。

       /etc/shadow
           安全用户账户信息。

       /etc/pam.d/passwd
           passwd 的 PAM 配置。

退出值
       passwd 命令退出,并返回如下值:

       0
           成功

       1
           权限不够
       2
           无效的选项组合

       3
           意外的失败,什么也没有做。

       4
           意外的失败,passwd 文件丢失

       5
           passwd 文件忙,请重试

       6
           给了选项一个无效的参数

参见
       chpasswd(8), passwd(5), shadow(5), usermod(8).




Linux -- passwd