一、修改用户密码passwd
1.前言:
- 添加用户之后,给用户设置密码,这个用户才能使用。
- 超级用户:能改自己的,还能改其他的。
passwd 用户名
- 普通用户:只能改自己的密码。给自己改密码的时候不能用passwd 用户名,这个只有root可以使用,在当前用户下直接
passwd
passwd root
给root用户设置密码whoami
"我是谁"显示当前用户
注意: 在改密码的时候,要注意这两点:
1. 输入密码没有*号提示的
2. 输新密码输错时,按退格键不能把密码删掉,会认为退格键也是一个字符。
2.passwd命令格式
命令:passwd [选项] 用户名
选项:-S 查询用户密码的密码状态。仅root用户可用
-l 按时锁定用户。仅root用户可用
-u 解锁用户。仅root用户可用
--stdin 可以通过管道符输出的数据作为用户的密码
小提示: passwd 最常见的用法是直接加用户名,一般不加选项。在一些特殊情况下,我们需要用这些选项来做操作.
3.查看密码状态
命令: psaawd -S lamp
显示的内容 : lamp PS 2013-01-06 0 99999 7 -1
显示的代表的含义: 用户名(lamp)密码设定时间(2013-01-06)密码修改间隔时间(0)密码有效期(99999)警告时间(7)密码不失效(-1)
具体操作如下图所示
4.锁定用户和解锁用户
锁定用户命令:passwd -l helen(用户)
解锁用户命令:passwd -u helen(用户)
- 锁定Helen用户之后,就不能在登录Helen用户了,我们进入
vim /etc/shadow
看一下发生了什么,会发现第二个字段的加密字串前面多了两个 !! 双感叹号的意思是用户没有密码。 但是这里是加密字串,在加密字串的任何地方任何位置添加字符,然后加密字串换算出来的内容,就不是原始密码了,这也就相当于锁定了。手工添加或者删除这个字串都是可以,但是只能是超级用户来做,以为这个文件的权限是000,普通用户是看不到的。
- 在用解锁命令对helen操作,之后我们再去/etc/passwd文件中查看!!没有了
上面的那两张图说明,加锁解锁用户其本质是在/etc/shadow文件中实现的。当然也可以手工改shadow文件中的密码字段添加!来实现。
5.使用字符串作为用户的密码
命令:echo “123”|passwd --stdin helen
--stdin
把输入的这个字串作为密码--stdin
不用用户手工输入密码,而是接收的是123这个参数。- 管道符的作用:第一条命名的输出最为第二条命令的输入。echo输出123, helen用123来作为自己的密码。
- 这是有可能有疑问,这种方法还不如手工设置方便,他存在的意义是什么? 这种方法在写shell编程的时候用,举个栗子:如果批量添加100个用户,如果一个100个用户的密码都用手工来做,效率低下。如果—stdin这种方法可以给每个普通用户添加一个初始密码。具体如何在shell编程里添加,请听下回分解。
--stdin
的作用就是接收这个字符串作为每个用户的密码。但是有个问题: 每个用户的密码都是铭文,要求用户登录之后把自己的密码改一下。
6.总结
- passwd 最常见的用法是什么选项都不跟,直接添加用户名,绝大多数情况下都是这样,在一些特殊情况下,比如可以用S来查看密码参数,-l锁定用户 –u解锁用户,用这种—stdin来接收密码参数来作为密码,在特殊情况下才使用。 最常用的还是passwd 直接加用户名。 用户设置自己的密码的时候,先输入之前的密码,然后在输入现在的密码,然后必须符合密码的复杂性要求。