UNPKG

4.06 kBMarkdownView Raw
1passwd
2===
3
4用于让用户可以更改自己的密码
5
6## 补充说明
7
8**passwd命令** 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
9
10### 语法
11
12```shell
13passwd(选项)(参数)
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
53jack  # 用户名
54X  # 口令、密码
55503  # 用户id(0代表root、普通新建用户从500开始)
56504  # 所在组
57:  # 描述
58/home/jack/  # 用户主目录
59/bin/bash  # 用户缺省Shell
60```
61
62组信息文件分析
63
64```shell
65例如:jack:$!$:???:13801:0:99999:7:*:*:
66jack  # 组名
67$!$  # 被加密的口令
6813801  # 创建日期与今天相隔的天数
690  # 口令最短位数
7099999  # 用户口令
717  # 到7天时提醒
72*  # 禁用天数
73*  # 过期天数
74```
75
76### 实例
77
78如果是普通用户执行passwd只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用passwd用户名,注意要以root用户的权限来创建。
79
80```shell
81[root@localhost ~]# passwd linuxde # 更改或创建linuxde用户的密码;
82Changing password for user linuxde.
83New UNIX password: # 请输入新密码;
84Retype new UNIX password: # 再输入一次;
85passwd: all authentication tokens updated successfully. # 成功;
86```
87
88或通过管道符把`echo`命令和`passwd`命令的`--stdin`参数相结合,用一条命令来完成密码修改,无序交互。
89以 linuxde 用户的密码改成 123456 为例:
90
91```shell
92[root@localhost ~]# echo "123456" | passwd --stdin linuxde
93Changing password for user linuxde. # 正在更改 linuxde 用户的密码。
94passwd: all authentication tokens updated successfully. # passwd:所有身份验证令牌都已成功更新
95```
96
97普通用户如果想更改自己的密码,直接运行passwd即可,比如当前操作的用户是linuxde。
98
99```shell
100[linuxde@localhost ~]$ passwd
101Changing password for user linuxde. # 更改linuxde用户的密码;
102(current) UNIX password: # 请输入当前密码;
103New UNIX password: # 请输入新密码;
104Retype new UNIX password: # 确认新密码;
105passwd: all authentication tokens updated successfully. # 更改成功;
106```
107
108比如我们让某个用户不能修改密码,可以用`-l`选项来锁定:
109
110```shell
111[root@localhost ~]# passwd -l linuxde # 锁定用户linuxde不能更改密码;
112Locking password for user linuxde.
113passwd: Success # 锁定成功;
114
115[linuxde@localhost ~]# su linuxde # 通过su切换到linuxde用户;
116[linuxde@localhost ~]$ passwd # linuxde来更改密码;
117Changing password for user linuxde.
118Changing password for linuxde
119(current) UNIX password: # 输入linuxde的当前密码;
120passwd: Authentication token manipulation error # 失败,不能更改密码;
121```
122
123再来一例:
124
125```shell
126[root@localhost ~]# passwd -d linuxde # 清除linuxde用户密码;
127Removing password for user linuxde.
128passwd: Success # 清除成功;
129
130[root@localhost ~]# passwd -S linuxde # 查询linuxde用户密码状态;
131Empty password. # 空密码,也就是没有密码;
132```
133
134注意:当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意。
135
136