usermod命令
1. usermod命令:
修改一个用户账户属性
2. 语法:
usermod [选项] 用户
3. 选项:
3.1 修改用户uid
[root@learnlinux ~]# usermod -u 1001 gavin
[root@learnlinux ~]# id gavin
uid=1001(gavin) gid=1000(gavin) 组=1000(gavin)
3.2 修改用户gid/主组
[root@learnlinux ~]# usermod -g 1001 gavin
[root@learnlinux ~]# id gavin
uid=1001(gavin) gid=1001(group1) 组=1001(group1)
[root@learnlinux ~]# usermod -g gavin gavin
[root@learnlinux ~]# id gavin
uid=1001(gavin) gid=1000(gavin) 组=1000(gavin)
3.3 指定用户家目录
[root@learnlinux ~]# usermod -d /home/user/ gavin
[root@learnlinux ~]# tail -2 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
gavin:x:1001:1000::/home/user/:/bin/bash
3.4 指定用户shell
[root@learnlinux ~]# usermod -s /sbin/nologin gavin
[root@learnlinux ~]# tail -1 /etc/passwd
gavin:x:1001:1000::/home/user/:/sbin/nologin
3.5 指定用户扩展组
3.5.1 查看用户主组和扩展组
[root@learnlinux ~]# id gavin
uid=1001(gavin) gid=1000(gavin) 组=1000(gavin)
3.5.2 添加扩展组group1
[root@learnlinux ~]# usermod -G group1 gavin
[root@learnlinux ~]# id gavin
uid=1001(gavin) gid=1000(gavin) 组=1000(gavin),1001(group1)
3.5.2 只指定一个扩展组时会删掉其他扩展组
[root@learnlinux ~]# usermod -G group2 gavin
[root@learnlinux ~]# id gavin
uid=1001(gavin) gid=1000(gavin) 组=1000(gavin),1002(group2)
3.5.3 删掉扩展组方法为把扩展组设置成主组
[root@learnlinux ~]# usermod -G gavin gavin
[root@learnlinux ~]# id gavin
uid=1001(gavin) gid=1000(gavin) 组=1000(gavin)
3.5.4 加多个扩展组用“,”分隔
[root@learnlinux ~]# usermod -G group1,group2 gavin
[root@learnlinux ~]# id gavin
uid=1001(gavin) gid=1000(gavin) 组=1000(gavin),1001(group1),1002(group2)
3.6 锁定以及解锁用户
usermod -L 锁定用户 ,/etc/shadow密码位会多一个“!"
usermod -U 解锁用户
用户密码管理
1. passwd命令
passwd修改用户密码命令,passwd有set_uid特殊权限,普通用户可以修改自己的密码;root用户下修改密码直接passwd,修改普通用户密码passwd 用户名。
/etc/shadow 中第二段密码位是"!!"两个叹号时表示密码为空,"*" 表示密码被锁定不能登录
2. 选项
2.1 passwd -l 锁定用户的密码
/etc/shadow中第二段密码位多两个“!!”
[root@learnlinux ~]# passwd -l gavin
锁定用户 gavin 的密码 。
passwd: 操作成功
[root@learnlinux ~]# tail -2 /etc/shadow
gavin:!!$1$6Um5o9VW$f.7YfAsCwC802hlcNTtTg/:17624:0:99999:7:::
zhang:!!:17624:0:99999:7:::
2.2 passwd -u 解锁用户的密码
解锁后“!!”没有了
[root@learnlinux ~]# passwd -u gavin
解锁用户 gavin 的密码。
passwd: 操作成功
[root@learnlinux ~]# tail -2 /etc/shadow
gavin:$1$6Um5o9VW$f.7YfAsCwC802hlcNTtTg/:17624:0:99999:7:::
zhang:!!:17624:0:99999:7:
2.3 passwd --stdin user
修改user密码,明文显示只输入一次
[root@learnlinux ~]# passwd --stdin gavin
更改用户 gavin 的密码 。
Ga123456
passwd:所有的身份验证令牌已经成功更新。
2.4 echo "123456" | passwd --stdin user
脚本中运行直接修改user密码为123456
[root@learnlinux ~]# echo "123456" | passwd --stdin gavin
更改用户 gavin 的密码 。
passwd:所有的身份验证令牌已经成功更新。
2.5 echo -e "123456\n123456" |passwd gavin
[root@learnlinux ~]# echo -e "Ga123456*\nGa123456*" | passwd gavin
更改用户 gavin 的密码 。
新的 密码:无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。
2.5.1 echo -e "123\nabc"
-e \n 起到换行作用
[root@learnlinux ~]# echo -e "123\nabc"
123
abc
2.5.2 echo -e "123\tabc"
-e \t 分段
[root@learnlinux ~]# echo -e "123\tabc"
123 abc
2.6 -d 删除密码
[root@learnlinux ~]# passwd -d gavin
清除用户的密码 gavin。
passwd: 操作成功
[root@learnlinux ~]# tail -2 /etc/shadow
gavin::17624:0:0:7:::
zhang:!!:17624:0:99999:7:::
2.7 -S 显示密码信息
[root@learnlinux ~]# passwd -S root
root PS 1969-12-31 0 99999 7 -1 (密码已设置,使用 MD5 算法。)
[root@learnlinux ~]# passwd -S gavin
gavin NP 2018-04-03 0 0 7 -1 (密码为空。)
2.8 -f强制执行
2.9 -x 设置密码的有效期
[root@learnlinux ~]# passwd -x 10 gavin
调整用户密码老化数据gavin。
passwd: 操作成功
[root@learnlinux ~]# passwd -S gavin
gavin NP 2018-04-03 0 10 7 -1 (密码为空。)
##密码10天后到期
2.10 -i 过期后多少天停止用户账号
[root@learnlinux ~]# passwd -i 1 gavin
调整用户密码老化数据gavin。
passwd: 操作成功
[root@learnlinux ~]# passwd -S gavin
gavin NP 2018-04-03 0 10 7 1 (密码为空。)
[root@learnlinux ~]# tail -2 /etc/shadow
gavin::17624:0:10:7:1::
zhang:!!:17624:0:99999:7:::
[root@learnlinux ~]# tail -2 /etc/shadow
gavin:$1$MdG2qS6N$3fJcvn7930VEXKzEvFJIg0:17624:0:10:7:1::
zhang:!!:17624:0:99999:7:::
passwd -i -1 gavin 恢复默认
[root@learnlinux ~]# passwd -i -1 gavin
调整用户密码老化数据gavin。
passwd: 操作成功
[root@learnlinux ~]# passwd -S gavin
gavin PS 2018-04-03 0 10 7 -1 (密码已设置,使用 MD5 算法。)
[root@learnlinux ~]# tail -2 /etc/shadow
gavin:$1$MdG2qS6N$3fJcvn7930VEXKzEvFJIg0:17624:0:10:7:::
zhang:!!:17624:0:99999:7:::
mkpasswd命令
1. mkpasswd命令:
生成密码的一个工具
安装:yum install -y expect
2. 选项:
2.1 mkpasswd
默认生成9位的密码,4个小写、2个数字、2个大写、一个特殊符号;
大写字母、小写字母、数字最少都要有两个;
[root@learnlinux ~]# mkpasswd
xklV0u@8J
2.2 -l 指定密码的长度
[root@learnlinux ~]# mkpasswd -l 15
x46bzglzzMFmcq{
2.3 -s 指定有几个特殊符号
[root@learnlinux ~]# mkpasswd -s 3
47t.Lr.W!
2.4 -d 指定数字的个数
[root@learnlinux ~]# mkpasswd -d 4
=80Bs5Qp1
2.5 -C 指定大写字母的个数
[root@learnlinux ~]# mkpasswd -C 4
sRD3/KHb9
3. 示例:
mkpasswd -l 15 -d 3 -C 5