二、设定密码
[root@localhost ~ ] # passwd [选项] 用户名
1、选项
- -l:暂时锁定用户。该选项仅root用户可用。
其实就是在/etc/shadow
文件中的密码位置,最前边加入了两个!
。(手工修改也行,同样的效果) - -u:解锁用户。该选项仅root用户可用。
在/etc/shadow
文件中的密码位置,取消最前边的两个!
。 - --stdin:可以将通过管道符输出的数据作为用户的密码。
也就是说,可以用输出的字符串作为密码。
主要在批量添加用户时使用。
举例
#passwd直接回车代表修改当前用户的密码
[root@localhost ~ ] # passwd
注意:普通用户修改自己的密码,密码要符合规范,如果不符合规范修改不了。
2、可以使用字符串作为密码
#更改用户user1的密码。
[root@localhost ~] # echo "123" | passwd --stdin user1
说明:echo "123" 输出123字符串,通过管道符交给passwd,
由--stdin选项来支持把passwd收到的密码,设置给user1用户。
注意:
--stdin
选项来设置密码,不用再输入现有密码和两次新密码的交互了,非常适合批量添加用户时使用。
3、实练
当我批量创建完用户之后,密码一般都是统一的一个默认值,我需要用户登陆时,第一时间就要修改密码,需要怎么做?
可以通过命令,把密码修改日期归零(shadow第3字段),这样用户一登陆就要修改密码,
(因为修改密码的时候为0,证明该用户从1970年到现在一次密码都没有修改过,Linux系统会认为这是不对的,需要你马上进行修改密码。),例如:
[root@localhost ~ ] # chage -d 0 user1
再次登陆,一上来就会要求你修改密码。如下图:
先输入旧密码,在输入新密码,新密码要求符合规范。然后会登出,需要你重新登陆。
linux设置密码规则
- 1.使用数字,小写字母,大写字母,特殊符号中的三种;
- 2.密码长度足够长,大于7位;
三、用户信息修改
usermod
命令是修改已经添加的用户的信息的,命令如下:
[root@localhost ~ ] # usermod [选项] 用户名
1、选项:
- -u:UID。修改用户的UID。
- -d:家目录。修改用户的家目录。家目录必须写绝对路径。
- -c:用户说明。修改用户的说明信息,就是
/etc/passwd
文件的第五个字段。 - -g:组名。修改用户的初始组,就是
/etc/passwd
文件的第四个字段。 - -G:组名。修改用户的附加组,其实就是把用户加入其他用户组。
- -s :shell。修改用户的登录Shell,默认是
/bin/bash
。 - -e:日期。修改用户的失效日期,格式为"YYY-MM-DD",也就是
/etc/shadow
文件的第八个字段。 - -L:临时锁定用户(Lock)。
- -U:解锁用户(Unlock)。
你仔细对比一下,
usermod
命令和useradd
命令的选项基本一样。
useradd
命令是在创建新用户的同时,指定属性。
usermod
命令是修改系统中已存在用户的属性。
这些选项一般也不建议修改。常用的也就-G
选项。
[root@localhost ~ ] # usermod -G user1(组) user2(用户)
2、用户可以修改用户名吗?
当然可以,但是不建议修改用户名。因为是修改了用户名,而初始组等与用户名对应的信息都没有修改,以后用起来及其痛苦。建议删除旧用户,再建立新用户!
#修改用户名
[root@localhost ~ ] # usermod -l 新名 旧名
四、删除用户
[root@localhost ~ ] # userdel [-r] 用户名
选项:
- -r:在删除用户的同时删除用户的家目录。(该选项一般为必选项)
五、切换用户身份
su命令可以切换成不同的用户身份(包括切换成root用户)。
注意:超级用户切换成任何其他普通用户都不用密码。
命令格式如下:
[root@localhost ~ ] # su [选项] 用户名
选项:
- -:选项只使用“-”代表连带用户的环境变量一起切换。
- -c命令:仅执行一次命令,而不切换用户身份。
注意:“-”绝不能省略,它代表切换用户身份时,用户的环境变量也要切换成新用户的环境变量(用户身份完整切换)。
练习:
[user1@localhost ~ ]$ su - user2
密码:
[user2@localhost user1]$ whoami
user2
[user2@localhost user1]$ exit
exit
[user1@localhost ~ ]$ whoami
user1
查看系统生效的变量用
env
命令。