passwd 命令

| 选择喜欢的代码风格  

passwd 命令补充说明:


passwd 命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

passwd 命令更改用户帐户的密码。 普通用户只能更改自己帐户的密码,而超级用户可以更改任何帐户的密码。 passwd 还可以更改或重置帐户的有效期-密码过期之前必须经过的时间必须更改。

普通用户在更改自己的密码之前,必须先输入当前密码进行验证(超级用户可以在更改其他用户的密码时跳过此步骤)。

在验证了当前密码之后,passwd 会检查此时是否允许用户更改其密码。 如果不是,则 passwd 拒绝继续并退出。

否则,然后两次提示用户输入替换密码。 这两个条目必须匹配才能使 passwd 继续。

接下来,测试密码的复杂性。 作为一般准则,密码应至少包含6个字符,包括以下每个字符中的一个或多个

  • 小写字母
  • 数字 0 到 9
  • 标点符号

passwd 命令语法:


passwd [OPTION] [USER]

passwd 命令选项:


-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。

passwd 命令参数:


用户名:需要设置密码的用户名。

passwd 命令实例


如果是普通用户执行 passwd 只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用 passwd 用户名,注意要以 root 用户的权限来创建。

[root@localhost ~]$ passwd linuxde     # 更改或创建linuxde用户的密码;
Changing password for user linuxde.
New UNIX password:           # 请输入新密码;
Retype new UNIX password:    # 再输入一次;
passwd: all authentication tokens updated successfully.  # 成功;

普通用户如果想更改自己的密码,直接运行 passwd 即可,比如当前操作的用户是 commandnotfound

[commandnotfound@localhost ~]$ passwd
Changing password for user commandnotfound.  # 更改commandnotfound用户的密码;
(current) UNIX password:    # 请输入当前密码;
New UNIX password:          # 请输入新密码;
Retype new UNIX password:   # 确认新密码;
passwd: all authentication tokens updated successfully.  # 更改成功;

比如我们让某个用户不能修改密码,可以用 -l 选项来锁定:

[root@localhost ~]$ passwd -l commandnotfound     # 锁定用户commandnotfound不能更改密码;
Locking password for user commandnotfound.
passwd: Success            # 锁定成功;

[commandnotfound@localhost ~]# su commandnotfound    # 通过su切换到linuxde用户;
[commandnotfound@localhost ~]$ passwd       # commandnotfound来更改密码;
Changing password for user commandnotfound.
Changing password for commandnotfound
(current) UNIX password:           # 输入commandnotfound的当前密码;
passwd: Authentication token manipulation error      # 失败,不能更改密码;

清除密码,注意:当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意

[root@localhost ~]$ passwd -d commandnotfound   # 清除commandnotfound用户密码;
Removing password for user commandnotfound.
passwd: Success                          # 清除成功;

[root@localhost ~]# passwd -S commandnotfound     # 查询commandnotfound用户密码状态: -S, --status;
Empty password.                          # 空密码,也就是没有密码;

passwd 命令知识扩展:


与用户、组账户信息相关的文件:

#存放用户信息
/etc/passwd
/etc/shadow

#存放组信息
/etc/group
/etc/gshadow

#用户信息文件分析(每项用:隔开)
例如:jack:X:503:504:::/home/jack/:/bin/bash
jack  # 用户名
X  # 口令、密码
503  # 用户id(0代表root、普通新建用户从500开始)
504  # 所在组
:  # 描述
/home/jack/  # 用户主目录
/bin/bash  # 用户缺省Shell

#组信息文件分析

例如:jack:$!$:???:13801:0:99999:7:*:*:
jack  # 组名
$!$  # 被加密的口令
13801  # 创建日期与今天相隔的天数
0  # 口令最短位数
99999  # 用户口令
7  # 到7天时提醒
*  # 禁用天数
*  # 过期天数

passwd 命令扩展阅读:




发表评论