在Linux中,passwd
命令用于管理用户帐户和密码
passwd
命令输入新密码。passwd
命令会检查新密码是否符合安全策略。这可能包括密码长度、复杂性(如包含大小写字母、数字和特殊字符)以及是否与最近使用的密码重复等。如果新密码不符合策略,passwd
会提示用户重新输入。passwd
命令会使用crypt()
函数(在C语言库中实现)对新密码进行加密。crypt()
函数使用一种单向哈希算法(如DES、MD5或SHA-256)将密码转换为固定长度的哈希值。/etc/shadow
文件中的用户哈希值进行比较。/etc/shadow
文件包含所有用户(除了root)的加密密码和其他敏感信息,这些文件通常只有root用户可以访问。passwd
命令会更新/etc/shadow
文件中的哈希值。然后,passwd
命令会向用户显示一条消息,确认密码已成功更改。passwd
命令还会更新/etc/passwd
文件。/etc/passwd
文件包含用户的基本信息(如用户名、用户ID、组ID、用户信息、用户主目录和默认shell)。但是,系统用户的密码不会存储在/etc/passwd
文件中,而是存储在/etc/shadow
文件中。通过这种方式,Linux中的passwd
命令确保了用户密码的安全存储和更新。