一、usermod命令
1.
usermod
更改用户属性
usermod -u 更改uid
-g 更改gid
-d 指定家目录
-s 指定shell
2.
usermod -G 指定扩展组,一个用户gid只有一个,但是它可以属于多个组,被称为扩展组
1. [root@localhost ~]# id lx01
uid=1000(lx01) gid=1000(lx01) 组=1000(lx01) #可以看到lx01只有一个组
2. [root@localhost ~]# usermod -G zx1 lx01 #把lx01添加到zx1组
3. [root@localhost ~]# id lx01
uid=1000(lx01) gid=1000(lx01) 组=1000(lx01),1002(zx1) #lx01多了一个扩展组1002
4. [root@localhost ~]# usermod -G zx1,lx03 lx01 #可以添加多个扩展组组
5. [root@localhost ~]# id lx01
uid=1000(lx01) gid=1000(lx01) 组=1000(lx01),1002(zx1),1003(lx03) #可以看到3个扩展组
二、用户密码管理
1.
passwd 更改用户密码
1. [root@localhost ~]# passwd lx03 # 使用passwd更改用户lx03的密码
更改用户 lx03 的密码 。
新的 密码: #输入密码
重新输入新的 密码: #确认密码
passwd:所有的身份验证令牌已经成功更新。
2. [root@localhost ~]# tail -n5 /etc/shadow
chrony:*:17479::::::
lx01:!!:17520:0:99999:7:::
lx02:!!:17520:0:99999:7:::
#可以看到lx03用户的密码已经更新,其中!!表示密码为空。*表示不能登陆
lx03:$6$YK3nJcte$si0pL5dq72rIMc/Ma4f/ZVZteBZTGsAbQGFYLJE0ZsUzhxx3/iwgCF276Kf1gYwHprwODg0gY1UbMSxDpsuQF0:17524:0:99999:7:::
sdd:!!:17523:0:99999:7:::
2.
passwd -l 锁定用户的密码
1. [root@localhost ~]# passwd -l lx03 #锁定用户lx03的密码
锁定用户 lx03 的密码 。
passwd: 操作成功
2. [root@localhost ~]# tail -n5 /etc/shadow
chrony:!!:17479::::::
lx01:!!:17520:0:99999:7:::
lx02:!!:17520:0:99999:7::: #可以看到lx03的密码段前面有2个!!,表示被锁定
lx03:!!$6$YK3nJcte$si0pL5dq72rIMc/Ma4f/ZVZteBZTGsAbQGFYLJE0ZsUzhxx3/iwgCF276Kf1gYwHprwODg0gY1UbMSxDpsuQF0:17524:0:99999:7:::
sdd:!!:17523:0:99999:7:::
3.
passwd -u 解锁密码
[root@localhost ~]# passwd -u lx03
解锁用户 lx03 的密码。
passwd: 操作成功
4.
usermod -L 也可以锁定用户,用户的密码段是1个! ,不论是1个"!"还是2个"!",都可以锁定用户
usermod -U 解锁用户
1. [root@localhost ~]# usermod -L lx03
2. [root@localhost ~]# tail -n3 /etc/shadow
lx02:!!:17520:0:99999:7:::
lx03:!$6$YK3nJcte$si0pL5dq72rIMc/Ma4f/ZVZteBZTGsAbQGFYLJE0ZsUzhxx3/iwgCF276Kf1gYwHprwODg0gY1UbMSxDpsuQF0:17524:0:99999:7:::
sdd:!!:17523:0:99999:7:::
5.
passwd --stdin
明文显示更改的密码,并且只用输入一次啊
[root@localhost ~]# passwd --stdin lx02
更改用户 lx02 的密码 。
123456 #直接输入密码,且是明文显示的
passwd:所有的身份验证令牌已经成功更新。
6. 使用管道符直接更改密码
[root@localhost ~]# echo "333444555" | passwd --stdin lx02 # "|"为管道符,将上一条命令的结果传递给下一条命令
更改用户 lx02 的密码 。
passwd:所有的身份验证令牌已经成功更新。 #一条命令直接更改密码,不用输入
7.
echo -e -e允许存在特殊符号,这样可以使用"\n"实现换行,不用
passwd --stdin同样可以更改密码
1. [root@localhost ~]# echo -e "122\nhhh"
122
hhh
2. [root@localhost ~]# echo -e "123455\n123455" | passwd lx03 #系统直接输入了两次“123455”更改密码
更改用户 lx03 的密码 。
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。
三、mkpasswd命令
1. 安装软件包
yum install -y expect
2.
mkpasswd 随机生成一个包括小写字母、数字、特殊符号的9位密码
[root@localhost ~]# mkpasswd
%0xSTxra8
3.
mkpasswd -l 指定密码的长度
[root@localhost ~]# mkpasswd -l 12
x1jco=zTNv6t
4.
mkpasswd -s 指定密码中特殊符号的个数,0表示不要特殊符号
[root@localhost ~]# mkpasswd -l 12 -s 5
q^!"0k$1g.BD
[root@localhost ~]# mkpasswd -l 12 -s 0
n45laLmggoAg