3.4 usermod命令 3.5 用户密码管理 3.6 mkpasswd命令

3.4 usermod命令



usermod 修用户的属性

  • -u 修改用户UID
  • -g 修改用户Gid
  • -d 修改用户家目录
  • -s 修改用户shell
  • -G 增加用户扩展组;一个用户可以属于多个组,但是gid只有一个,把用户gid的叫做组,其他组叫做扩展组。
  • -L 锁定一个用户登录
  • -U 解锁用户登录

例子:

[root@linux-151 ~]# usermod -u 1008 -g grp2  -d /home/lem -s /sbin/nologin user6
[root@linux-151 ~]# ls /home
user2 user5 user6 lem
[root@linux-151 ~]# ls /home/lem/
[root@linux-151 ~]# tail -1 /etc/passwd
user6:x:1008:1003::/home/lem:/sbin/nologin

usermod -G 扩展组;-G后面可以跟多个组

[root@linux-151 ~]# usermod -G user6 user6
[root@linux-151 ~]# id user6
uid=1008(user6) gid=1003(grp2) 组=1003(grp2),1008(user6)
[root@linux-151 ~]# usermod -G user5 user6
[root@linux-151 ~]# id user6
uid=1008(user6) gid=1003(grp2) 组=1003(grp2),1006(user5)
[root@linux-151 ~]# usermod -G user5,user6 user6
[root@linux-151 ~]# id user6
uid=1008(user6) gid=1003(grp2) 组=1003(grp2),1006(user5),1008(user6)

usermod -g 后面只能跟一个组名

[root@linux-151 ~]# usermod -g user5,user6 user6
usermod:“user5,user6”组不存在



usermod -L 锁定用户

[root@linux-151 ~]# passwd user6
更改用户 user6 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@linux-151 ~]# tail -5 /etc/shadow
lem:!!:17459:0:99999:7:::
user3:!!:17469:0:99999:7:::
user4:!!:17469:0:99999:7:::
user5:!!:17470:0:99999:7:::
user6:$6$tJJAc8/V$IRy04ujT7yV.9vI0c9cR9WgYLZx.LlVKp.Hu5WBeAG5Z0XuO8lvZ1FgL3yiEA.YrnfpD1.vljuzXZL7ljbMze1:17470:0:99999:7:::
//锁定user6
[root@linux-151 ~]# usermod -L user6
[root@linux-151 ~]# tail -5 /etc/shadow
lem:!!:17459:0:99999:7:::
user3:!!:17469:0:99999:7:::
user4:!!:17469:0:99999:7:::
user5:!!:17470:0:99999:7:::
user6:!$6$tJJAc8/V$IRy04ujT7yV.9vI0c9cR9WgYLZx.LlVKp.Hu5WBeAG5Z0XuO8lvZ1FgL3yiEA.YrnfpD1.vljuzXZL7ljbMze1:17470:0:99999:7:::

注意:-L user6,查看密码文件的时候,user6密码前面多了一个感叹号,表示用户user6被锁定了;



usermod -U 解锁用户

[root@linux-151 ~]# usermod -U user6
[root@linux-151 ~]# tail -5 /etc/shadow
lem:!!:17459:0:99999:7:::
user3:!!:17469:0:99999:7:::
user4:!!:17469:0:99999:7:::
user5:!!:17470:0:99999:7:::
user6:$6$tJJAc8/V$IRy04ujT7yV.9vI0c9cR9WgYLZx.LlVKp.Hu5WBeAG5Z0XuO8lvZ1FgL3yiEA.YrnfpD1.vljuzXZL7ljbMze1:17470:0:99999:7::: //感叹号消失

注意:删除一个组,如果组里面有用户,是不能被删除的,但是这个组属于扩展组是可以删除的。

3.5 用户密码管理



命令passwd:设置用户密码;后面不加用户名,默认修改当前用户的密码

[root@linux-128 ~]# passwd
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@linux-128 ~]# passwd user5
更改用户 user5 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

注意:只有root用户才能修改其他用户的密码,普通用户只能修改自己的密码;

  • passwd有个选项也能锁定用户登录
  1. passwd –l 锁定用户
  2. passwd –u 解锁用户
[root@linux-128 ~]# tail -4 /etc/shadow
user3:!!:17469:0:99999:7:::
user4:!!:17469:0:99999:7:::
user5:$6$KFjov3.A$I2kpQHNDMbvYNQzBv8dUeco/E2D0zUqWKrP.CalCF/kpVpuAwZ3C/.DUZHSSYiT6Hk1D7gLYg/HmSEv8krVxc.:17470:0:99999:7:::
user6:$6$tJJAc8/V$IRy04ujT7yV.9vI0c9cR9WgYLZx.LlVKp.Hu5WBeAG5Z0XuO8lvZ1FgL3yiEA.YrnfpD1.vljuzXZL7ljbMze1:17470:0:99999:7:::

[root@linux-128 ~]# head -4 /etc/shadow
root:$6$P0JCL/5p$GnTS9gjHEdrLAUam9rbUNScO9N8USlzbZylZrHt3CGSyv/yCOw2cxcc0B6ojFNB1yYYJD30cSJD4ZIKPVkiCX.:17470:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::

注意:*表示用户密码是锁定的,不能用,不能登录系统;!!表示密码是空的也不能登录;



passwd -l 密码锁定

[root@linux-128 ~]# passwd -l user5
锁定用户 user5 的密码 。
passwd: 操作成功
[root@linux-128 ~]# tail -4 /etc/shadow
user3:!!:17469:0:99999:7:::
user4:!!:17469:0:99999:7:::
user5:!!$6$KFjov3.A$I2kpQHNDMbvYNQzBv8dUeco/E2D0zUqWKrP.CalCF/kpVpuAwZ3C/.DUZHSSYiT6Hk1D7gLYg/HmSEv8krVxc.:17470:0:99999:7:::
user6:$6$tJJAc8/V$IRy04ujT7yV.9vI0c9cR9WgYLZx.LlVKp.Hu5WBeAG5Z0XuO8lvZ1FgL3yiEA.YrnfpD1.vljuzXZL7ljbMze1:17470:0:99999:7:::

user5的密码锁定后,密码前面多了2个叹号;



passwd -u 密码解锁

[root@linux-128 ~]# passwd -u user5
解锁用户 user5 的密码。
passwd: 操作成功
[root@linux-128 ~]# tail -4 /etc/shadow
user3:!!:17469:0:99999:7:::
user4:!!:17469:0:99999:7:::
user5:$6$KFjov3.A$I2kpQHNDMbvYNQzBv8dUeco/E2D0zUqWKrP.CalCF/kpVpuAwZ3C/.DUZHSSYiT6Hk1D7gLYg/HmSEv8krVxc.:17470:0:99999:7:::
user6:$6$tJJAc8/V$IRy04ujT7yV.9vI0c9cR9WgYLZx.LlVKp.Hu5WBeAG5Z0XuO8lvZ1FgL3yiEA.YrnfpD1.vljuzXZL7ljbMze1:17470:

passwd --stdin

passwd --stdin XXX(用户名) 更改密码(密码为明文)

echo "xxxxxxx" |passwd --stdin XXX(用户名)

输出“xxxxxxx”为XXX的明文密码

echo "xxxxxxx" |passwd –stdin username 

[root@linux-151 ~]# passwd --stdin user6
更改用户 user6 的密码 。
123123
passwd:所有的身份验证令牌已经成功更新。
[root@linux-151 ~]# echo "123456" |passwd --stdin user6
更改用户 user6 的密码 。
passwd:所有的身份验证令牌已经成功更新。

这个多用于脚本修改密码

[root@linux-151 ~]# echo -e "123456\nqweqwe"
123456
qweqwe

echo -e可以使用换行符\n,这样相当于人工打了一次回车,也可以可以修改密码的。

[root@linux-151 ~]# echo -e "wz11223344%1\nwz11223344%1"|passwd user6
更改用户 user6 的密码 。
新的 密码:重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。

 3.6 mkpasswd命令

mkpasswd用户生成密码;需要安装一个expect包

[root@linux-151 ~]# yum install -y expect

mkpasswd默认会生成一个9位数密码

[root@linux-151 ~]# mkpasswd
91?uRIyuo

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

  1. -s 1 指定特殊字符个数1
  2. -d 4 指定有4个数字
  3. -c 3 指定有3个小写
  4. -C 5 指定有5个大写
[root@linux-151 ~]# mkpasswd -l 12 -d 4 -s 0
xigSTsf0965d