1 | passwd
|
2 | ===
|
3 |
|
4 | 用于让用户可以更改自己的密码
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **passwd命令** 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
|
9 |
|
10 | ### 语法
|
11 |
|
12 | ```shell
|
13 | passwd(选项)(参数)
|
14 | ```
|
15 |
|
16 | ### 选项
|
17 |
|
18 | ```shell
|
19 | -d:删除密码,仅有系统管理者才能使用;
|
20 | -f:强制执行;
|
21 | -k:设置只有在密码过期失效后,方能更新;
|
22 | -l:锁住密码;
|
23 | -s:列出密码的相关信息,仅有系统管理者才能使用;
|
24 | -u:解开已上锁的帐号。
|
25 | ```
|
26 |
|
27 | ### 参数
|
28 |
|
29 | 用户名:需要设置密码的用户名。
|
30 |
|
31 | ### 知识扩展
|
32 |
|
33 | 与用户、组账户信息相关的文件
|
34 |
|
35 | 存放用户信息:
|
36 |
|
37 | ```shell
|
38 | /etc/passwd
|
39 | /etc/shadow
|
40 | ```
|
41 |
|
42 | 存放组信息:
|
43 |
|
44 | ```shell
|
45 | /etc/group
|
46 | /etc/gshadow
|
47 | ```
|
48 |
|
49 | 用户信息文件分析(每项用`:`隔开)
|
50 |
|
51 | ```shell
|
52 | 例如:jack:X:503:504:::/home/jack/:/bin/bash
|
53 | jack # 用户名
|
54 | X # 口令、密码
|
55 | 503 # 用户id(0代表root、普通新建用户从500开始)
|
56 | 504 # 所在组
|
57 | : # 描述
|
58 | /home/jack/ # 用户主目录
|
59 | /bin/bash # 用户缺省Shell
|
60 | ```
|
61 |
|
62 | 组信息文件分析
|
63 |
|
64 | ```shell
|
65 | 例如:jack:$!$:???:13801:0:99999:7:*:*:
|
66 | jack # 组名
|
67 | $!$ # 被加密的口令
|
68 | 13801 # 创建日期与今天相隔的天数
|
69 | 0 # 口令最短位数
|
70 | 99999 # 用户口令
|
71 | 7 # 到7天时提醒
|
72 | * # 禁用天数
|
73 | * # 过期天数
|
74 | ```
|
75 |
|
76 | ### 实例
|
77 |
|
78 | 如果是普通用户执行passwd只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用passwd用户名,注意要以root用户的权限来创建。
|
79 |
|
80 | ```shell
|
81 | [root@localhost ~]# passwd linuxde # 更改或创建linuxde用户的密码;
|
82 | Changing password for user linuxde.
|
83 | New UNIX password: # 请输入新密码;
|
84 | Retype new UNIX password: # 再输入一次;
|
85 | passwd: all authentication tokens updated successfully. # 成功;
|
86 | ```
|
87 |
|
88 | 普通用户如果想更改自己的密码,直接运行passwd即可,比如当前操作的用户是linuxde。
|
89 |
|
90 | ```shell
|
91 | [linuxde@localhost ~]$ passwd
|
92 | Changing password for user linuxde. # 更改linuxde用户的密码;
|
93 | (current) UNIX password: # 请输入当前密码;
|
94 | New UNIX password: # 请输入新密码;
|
95 | Retype new UNIX password: # 确认新密码;
|
96 | passwd: all authentication tokens updated successfully. # 更改成功;
|
97 | ```
|
98 |
|
99 | 比如我们让某个用户不能修改密码,可以用`-l`选项来锁定:
|
100 |
|
101 | ```shell
|
102 | [root@localhost ~]# passwd -l linuxde # 锁定用户linuxde不能更改密码;
|
103 | Locking password for user linuxde.
|
104 | passwd: Success # 锁定成功;
|
105 |
|
106 | [linuxde@localhost ~]# su linuxde # 通过su切换到linuxde用户;
|
107 | [linuxde@localhost ~]$ passwd # linuxde来更改密码;
|
108 | Changing password for user linuxde.
|
109 | Changing password for linuxde
|
110 | (current) UNIX password: # 输入linuxde的当前密码;
|
111 | passwd: Authentication token manipulation error # 失败,不能更改密码;
|
112 | ```
|
113 |
|
114 | 再来一例:
|
115 |
|
116 | ```shell
|
117 | [root@localhost ~]# passwd -d linuxde # 清除linuxde用户密码;
|
118 | Removing password for user linuxde.
|
119 | passwd: Success # 清除成功;
|
120 |
|
121 | [root@localhost ~]# passwd -S linuxde # 查询linuxde用户密码状态;
|
122 | Empty password. # 空密码,也就是没有密码;
|
123 | ```
|
124 |
|
125 | 注意:当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意。
|
126 |
|
127 |
|