首页 > 代码库 > passwd命令

passwd命令

passwd命令

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

语法

passwd (选项) (参数)

选项

-d:删除密码,仅有系统管理者才能使用;

-f:强制执行;

-k:设置只有在密码过期失效后,方能更新;

-l:锁住密码;

-s:列出密码的相关信息,仅有系统管理者才能使用;

-u:解开已上锁的帐号。

参数

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

实例

如果是普通用户执行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即可,比如当前操作的用户是linuxde。

[linuxde@localhost ~]$ passwd

Changing password for user linuxde. //更改linuxde用户的密码;

(current) UNIX password: //请输入当前密码;

New UNIX password: //请输入新密码;

Retype new UNIX password: //确认新密码;

passwd: all authentication tokens updated successfully. //更改成功;

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

[root@localhost ~]# passwd -l linuxde //锁定用户linuxde不能更改密码;

Locking password for user linuxde. passwd: Success //锁定成功;

[linuxde@localhost ~]# su linuxde //通过su切换到linuxde用户; [linuxde@localhost ~]$ passwd //linuxde来更改密码;

Changing password for user linuxde.

Changing password for linuxde

(current) UNIX password: //输入linuxde的当前密码;

passwd: Authentication token manipulation error //失败,不能更改密码;

再来一例:

[root@localhost ~]# passwd -d linuxde //清除linuxde用户密码;

Removing password for user linuxde. passwd: Success //清除成功;

[root@localhost ~]# passwd -S linuxde //查询linuxde用户密码状态;

Empty password. //空密码,也就是没有密码;

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

总结

passwd //不跟参数表示修改当前用户的密码

passwd user1 //跟用户修改该用户的密码

mkpasswd //自动生成密码的工具,包含在expect包中

yum install -y expect //安装expect包

mkpasswd //不带参数可以生成一个默认长度为9的不规则字符串

mkpasswd -l 12 //指定密码长度为12

mkpasswd -l 12 -s 0 //长度12且不含“0”

mkpasswd -l 12 -s 0 -d 4 //长度12且不含“0”且包含4个数字

mkpasswd -l 12 -s 0 -d 4 -C 5 //长度12且不含“0”且包含4个数字且5个大写字母

mkpasswd -l 12 -s 0 -d 4 -c 5 //长度12且不含“0”且包含4个数字且5个小写字母

passwd --stdin user1 //明文设置密码,只需输入一次即可。适合用在脚本里面

如:#echo "123456" |passwd --stdin user1 //给用户user1设置密码123456

#echo "123456" |passwd --stdin  //给root用户设置密码123456

普通用户修改自己的密码需要知道自己的旧密码,root用户不需要


passwd命令