标题：password
翻译
password
英音：['pɑ：sw?:d]美音：['p&aelig;s,w?d]
名词n. 
口令；密码；通行密码；暗语
计算机中的用途
Linux - passwd 命令用途
更改用户密码。
语法
passwd [ -R load_module ] [-f| -s] [ User ]
描述
passwd 命令设置和更改用户密码。使用此命令更改自己或者另一个用户的密码。使用 passwd 命令也能更改与登录名关联的全名（gecos）和用来作为操作系统界面的 shell。
根据用户的定义，用户的密码可以存在于本地或远程。本地密码存在于 /etc/security/passwd 数据库中。远程密码存在于网络信息服务（NIS）或者分布式计算环境（DCE）数据库。
要更改自己的密码，请输入 passwd 命令。passwd 命令提示非 root 用户输入旧密码（如果存在），然后提示输入两次新密码。（密码不显示在屏幕上。）如果两次新密码的输入不一致， passwd 命令提示重新输入新密码。
注：
passwd 命令只使用密码的头八个字符作为本地和 NIS 密码。在密码中只支持 7 位字符。由于这个原因，本地语言支持（NLS）代码点不允许出现在密码中。
要更改另一个用户的密码，请输入 passwd 命令和用户的登录名（User 参数）。只有 root 用户或者安全组成员才允许更改另一个用户的密码。passwd 命令提示输入用户的旧密码以及用户的新密码。然而，passwd 命令并不提示 root 用户旧用户密码、root 密码以及加给 root 用户任何密码限制。
/etc/passwd 文件记录全名和使用的 shell 的路径名。要更改记录名，请输入 passwd -f 命令。要更改登录 shell，请输入 passwd -s 命令。
根据密码限制，在 /etc/security/user 配置文件中构造本地定义的密码。此文件包含下列限制：
minalpha 指定字母字符的最小数目。
minother 指定其它字符的最小数目。
minlen 指定字符的最小数目。
注：
此值由 minalpha 值加上 minother 值和 minlen 值中的大者。
mindiff 指定出现在新密码中但没出现在旧密码中的字符的最小数。
注：
此限制并不考虑位置。如果新密码是 abcd 并且旧密码是 edcb ，不同字符数就是 1。
maxrepeats 指定在密码中单个字符使用的最大次数。
minage 指定密码能够更改的最小寿命。密码必须保持一个最小周期。此值用周来评测。
maxage 指定密码的最大寿命。密码必须在指定的周数后更改。
maxexpired 指定用户可以更改密码的超出最大寿命 maxage 的最大周数。
histexpire 指定用户不能重用密码的周数。
histsize 指定用户不能重用的前几个密码的数目。
dictionlist 指定更改密码时要检查的字典文件列表。
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，则密码更改只能在指定的数据库中进行。
标志
-f 更改由 finger 命令访问的用户信息。可以使用此标志提供在 /etc/passwd 文件中的全名。
-s 更改登录 shell。
-R load_module 指定可装入 I&A 模块，来更改用户的密码。
安全性
访问控制：安装此程序为可信计算库的一部分，并可让所有用户执行。另外，此程序应该运行 setuid 以成为 root 用户来获取对密码文件的写访问。
文件存取：
方式 文件
r /etc/security/user
rx /usr/lib/security/DCE
rx /usr/lib/security/NIS
rw /etc/passwd
rw /etc/security/passwd
r /etc/security/login.cfg
审计事件：
事件 信息
PASSWORD_Change user
示例
1. 要更改密码，请输入：
passwd
passwd 命令提示输入旧密码，如果它存在并且您不是 root 用户。输入旧密码后，命令提示输入两次新密码。
2. 要更改 /etc/passwd 文件中的全名，请输入：
passwd-f
passwd 命令显示为您的用户标识存储的名称。例如，对于登录名 sam ， passwd 命令能够显示以下消息：
sam's current gecos:
"Sam Smith"
是否更改？>
如果输入 Y（是），passwd 命令提示输入新名。passwd 命令记录输入的名称到 /etc/passwd 文件中。
3. 要在下次登录时使用不同的 shell，请输入：
passwd - s
passwd 命令列出可用的和当前使用的 shell 的路径名。此命令也显示提示：
是否更改？>
如果输入 Y（是），passwd 命令提示输入要使用的 shell。下次登录时系统提供在此指定的 shell。
文件
/usr/bin/passwd 包含 passwd 命令。
/etc/passwd 包含用户 ID、用户名、主目录、登录 shell 和 finger 的信息
/etc/security/passwd 包含加密的密码和安全性信息。MySql - PASSWORD函数简介
将一串文本转换成哈希值。
详细介绍
MySQL用户账户列于mysql数据库中的user表内。每个MySQL账户指定一个密码，尽管保存在user表Password列的密码不是明文，但哈希值是从表中的记录计算的。用PASSWORD（）函数来计算密码的哈希值。
MySQL在客户端/服务器通信的两个阶段使用密码：
· 如果客户端试图连接服务器，有一个初始鉴定步骤，客户必须提供一个密码，并且必须与客户想要使用的账户在user表保存的哈希值匹配。
· 客户端连接后，它可以（如果有充分的权限） 设置或更改user表内所列的账户的密码哈希值值。客户端可以通过PASSWORD（）函数来生成密码哈希值，或使用GRANT或SET PASSWORD语句。
换句话说，当客户端首次试图连接时，服务器使用哈希值进行鉴定。如果连接的客户端调用PASSWORD（）函数或使用GRANT或SET语句来设置或更改密码，则服务器产生哈希值。
在MySQL 4.1中密码哈希算法已经更新，提供了更好的安全性并降低了密码被截取的风险。但是，该新机制只能在MySQL 4.1（和更新版本的）服务器和客户端中使用，会产生一些兼容性问题。4.1或新客户端可以连接4.1之前的服务器，因为客户端可以同时理解旧的和新的密码哈希机制。但是，4.1之前的客户端试图连接4.1版或更新版的服务器时会遇到困难。例如，3.23版mysql客户端试图连接5.1服务器时会失败并出现下面的错误消息：
shell> mysql -h localhost -u rootClient does not support authentication protocol requestedby server; consider upgrading MySQL client
出现该问题的另一个普通例子是在升级到MySQL 4.1或更新版后，试图使用旧版本的PHPmysql扩展名。（参见25.3.1节，“使用MySQL和PHP的常见问题”）。
下面讨论了新、旧密码机制之间的差别，以及如果你升级了服务器但需要为4.1版以前的客户端保持向后兼容性该怎样做。A.2.3节，“客户端不支持鉴定协议”中有更详细的信息。该信息将MySQL数据库从4.0版本或更低版升级到4.1版或更高版的PHP编程人员特别重要。
注释：该讨论对比了4.1版的行为和4.1前的行为，这儿描述的4.1中的行为实际上从4.1.1开始。MySQL 4.1.0是一个“旧”的发布，因为它的实施机制与4.1.1版和更新版中的稍有不同。在MySQL 5.0 参考手册中详细描述了4.1.0和最新版之间的差别。
在MySQL 4.1之前,用PASSWORD（）函数计算的密码哈希值有16个字节长。应为：
mysql> SELECT PASSWORD('mypass');