passwd 命令
用途
更改用户密码。
语法
描述
passwd 命令设置和更改用户密码。 使用此命令更改自己或者另一个用户的密码。 使用 passwd 命令也能更改与登录名关联的全名 (gecos) 和用来作为操作系统界面的 shell。
根据用户的定义,用户的密码可以存在于本地或远程。 本地密码存在于 /etc/security/passwd 数据库中。 远程密码存储在由远程域提供的数据库中。
要更改另一个用户的密码,请输入 passwd 命令和用户的登录名(User 参数)。 只有 root 用户或者安全组成员才允许更改另一个用户的密码。 passwd 命令提示输入用户的旧密码以及用户的新密码。 对于本地密码,passwd 命令并不提示 root 用户输入用户旧密码或者 root 用户密码。 对于远程密码,在缺省情况下,将会提示 root 用户输入旧的密码,这样远程域就能够决定是使用该密码还是忽略它。 要更改此行为,请参阅 /usr/lib/security/methods.cfg 文件中的 rootrequiresopw 选项。 passwd 命令并不对 root 用户强加任何密码限制。
/etc/passwd 文件记录全名和使用的 shell 的路径名。 要更改记录名,请输入 passwd -f 命令。 要更改登录 shell,请输入 passwd -s 命令。
| 项 | 描述 |
|---|---|
| dictionlist | 指定更改密码时要检查的字典文件列表。 |
| histexpire | 指定用户不能重用密码的周数。 |
| histsize | 指定用户不能重用的前几个密码的数目。 |
| maxage | 指定密码的最大寿命。 密码必须在指定的周数后更改。 |
| maxexpired | 指定超过以下值的最大周数:maxage可以由用户更改密码的值。 |
| maxrepeats | 指定在密码中单个字符使用的最大次数。 |
| minalpha | 指定字母字符的最小数目。 |
| minother | 指定其他字符的最小数目。 |
| minlen | 指定字符的最小数目。 注: 此值由以下任一项确定:minalpha值加上minother值或minlen值,以较大者为准。
|
| mindiff | 指定出现在新密码中但没出现在旧密码中的字符的最小数。 注: 此限制不考虑位置。 如果新密码为abcd并且旧密码是edcb,不同字符的数量为 1。
|
| minage | 指定密码能够更改的最小寿命。 密码必须保持一个最小周期。 此值用周来评测。 |
| minloweralpha | 指定小写字母字符的最小数目。 |
| minupperalpha | 指定大写字母字符的最小数目。 |
| mindigit | 指定数字的最小数目。 |
| minspecialchar | 指定特殊字符的最小数目。 |
| pwdchecks | 指定更改密码时要调用的外部密码限制方法的列表。 |
如果 root 用户添加了 NOCHECK 属性到在 /etc/security/passwd 文件中的标志条目中,密码就不必满足这些限制。 另外,root 用户也可指定新密码给其他用户而不遵循密码的限制。
如果 root 用户在标志条目中添加了 ADMIN 属性或者如果在 /etc/passwd 文件中的 password 字段包含 *(星号),那么只有 root 用户才能更改密码。 如果在 /etc/passwd 中的 password 字段包含有 !(感叹号) 和在 /etc/security/passwd 文件中的 password 字段包含有 *(星号),那么 root 用户拥有更改您的密码的超级特权。
如果 root 用更改您的密码,那么 ADMCHG 属性就会自动地添加到在 /etc/security/passwd 文件中的标志条目上。 这种情况下,您必须在下次登录时更改密码。
如果 /etc/security/user 文件中用户的 registry 值是 DCE 或 NIS,那么密码更改只能在指定的数据库中进行。
若密钥库不存在,且用户的 efs_keystore_access 属性值不为空,passwd 命令将创建用户密钥库。 密钥库与 /etc/security/user 文件中找到的加密文件系统 (EFS) 属性一起创建。 如果 旧密码可以打开密钥库,它也将更改密钥库密码。 换言之,如果登录和密钥库密码相同,那么 passwd 命令就更改两个密码。 如果文件系统是加密文件系统 (EFS),那么将执行该命令,如已指定 -a 标志一样。 如果指定了 -a 标志,结果将是在密码更改后,EFS 密码与用户登录密码不再同步。 因此,下次登录时,不再自动装入密钥库。
标志
| 项 | 描述 |
|---|---|
| 一 | 在所有模块(compat、LDAP 和 NIS 等等)中更改用户密码。 |
| -f | 更改由 finger 命令访问的用户信息。 可以使用此标志提供在 /etc/passwd 文件中的全名。 |
| -s | 更改登录 shell。 |
| -R 加载模块 | 指定可装入 I&A 模块,来更改用户的密码。 |
安全性
passwd 命令是支持 PAM 的带有服务名称 passwd 的应用程序。 在 /etc/security/login.cfg 的 usw 节中,通过修改 auth_type 属性值来将要使用 PAM 进行认证的系统范围配置设置为作为 root 用户的 PAM_AUTH。
#
# AIX passwd configuration
#
passwd password required /usr/lib/security/pam_aixRBAC 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关权限与特权的更多信息,请参阅安全性中的“特权限定的命令数据库”。 有关与该命令相关联的特权和权限的列表,请参阅 lssecattr 命令或 getcmdattr 子命令。
示例
- 如果要更改密码,请输入以下命令:
passwd 命令提示输入旧密码,如果它存在并且您不是 root 用户。 输入旧密码后,命令提示输入两次新密码。passwd - 如果要更改 /etc/passwd 文件中的全名,请输入以下命令:passwd -fpasswd 命令显示为您的用户标识存储的名称。 例如,对于登录名:sam, 密码 命令可能显示以下消息:
如果您输入Y对于 "是" , 密码 命令将提示您输入新名称。 passwd 命令记录输入的名称到 /etc/passwd 文件中。sam's current gecos: "Sam Smith" Change (yes) or no)? > - 如果要在下次登录时使用不同的 shell,请输入以下命令:passwd -spasswd 命令列出可用的和当前使用的 shell 的路径名。 此命令也显示提示:
如果您输入Y对于 "是" , 密码 命令会提示您输入要使用的 shell。 下次登录时系统提供在此指定的 shell。Change (yes) or (no)? >
文件
| 项 | 描述 |
|---|---|
| /usr/bin/passwd | 包含 passwd 命令。 |
| /etc/passwd | 包含用户标识、用户名、主目录、登录 shell 和 finger 的信息 |
| /etc/security/passwd | 包含加密密码和安全性信息。 |