passwd
与 root 不同的是,一般帐号在更改密码时需要先输入自己的旧密码 (亦即 current 那一行),然后再输入新密码 (New 那一行)。 要注意的是,密码的规范是非常严格的,尤其新的 distributions 大多使用 PAM 模块来进行密码的检验,包括太短、 密码与帐号相同、密码为字典常见字串等,都会被 PAM 模块检查出来而拒绝修改密码,此时会再重复出现“ New ”这个关键字, 就需要新密码。若出现“ Retype ”才是你的密码被接受了!重复输入新密码并且看到“ successfully ”这个关键字时才是修改密码成功。
与一般使用者不同的是, root 并不需要知道旧密码就能够帮使用者或 root 自己创建新密码。
密码最好符合以下要求:
密码不能与帐号相同;
密码尽量不要选用字典里面会出现的字串;
密码需要超过 8 个字符;
密码不要使用个人信息,如身份证、手机号码、其他电话号码等;
密码不要使用简单的关系式,如 1+1=2, Iamvbird 等;
密码尽量使用大小写字符、数字、特殊字符($,_,-等)的组合。
举例来说,你想要帮 vbird2 变更密码成为 abc543CC ,可以这样下达指令:
这个动作会直接更新使用者的密码而不用再次的手动输入!好处是方便处理,缺点是这个密码会保留在指令中, 未来若系统被攻破,人家可以在 /root/.bash_history 找到这个密码。所以这个动作通常仅用在 shell script 的大量创建使用者帐号当中!要注意的是,这个选项并不存在所有 distributions 版本中, 请使用 man passwd 确认你的 distribution 是否有支持此选项。
如果你想要让 vbird2 的密码具有相当的规则,举例来说你要让 vbird2 每 60 天需要变更密码, 密码过期后 10 天未使用就宣告帐号失效,那该如何处理?
chage
除了使用 passwd -S 之外,有没有更详细的密码参数显示功能,那就是chage。
chage 有一个功能很不错。如果你想要让“使用者在第一次登陆时, 强制她们一定要更改密码后才能够使用系统资源”,可以利用如下的方法来处理的!
agetest 这个帐号在第一次登陆时可以使用与帐号同名的密码登陆,但登陆时就会被要求立刻更改密码,更改密码完成后就会被踢出系统。再次登陆时就能够使用新密码登陆了。
usermod
我们可以直接到 /etc/passwd 或 /etc/shadow 去修改相对应字段的数据, 不过,Linux 也有提供相关的指令让大家来进行帐号相关数据的微调,那就是usermod。
userdel
使用者的数据有:
使用者帐号/密码相关参数:/etc/passwd, /etc/shadow
使用者群组相关参数:/etc/group, /etc/gshadow
使用者个人文件数据: /home/username, /var/spool/mail/username..