usermod命令 、用户密码管理、 mkpasswd命令

一、usermod命令

usermod命令是用来更改用户属性的,其格式为usermod -参数 username 其常用参数如下:

  • a /append ##把用户追加到某些组中,只跟-G一起使用。
  • d /home ## 指定用户的家目录。
  • e /expiredate ##指定用户账号禁用日期,日期格式为:YY-MM-DD
  • f /inactive ##用户账号密码过期多少天后禁用该账号,0表示只要过期就禁用账号,-1表示禁用该功能。
  • g /gid ##修改用户的gid,该gid必须存在,才能使用
  • G /groups ##把用户追加到某些组里,可以追加到多个组中,每个组之间用“,”隔开
  • l /login ##修改用户的登录名称
  • L /lock ##锁定用户的密码=passwd -l username
  • s / shell ##修改用户的shell
  • u / uid ##修改用户的uid,uid 是唯一的
  • U /unlock ##解锁用户的密码=passwd -u username

举例分析

使用usermod -g 修改用户的属组,执行结果如下:

[root@localhost ~]# usermod -g li1 li1
[root@localhost ~]# id li1
uid=1001(li1) gid=1001(li1) 组=1001(li1)
[root@localhost ~]# usermod -g work1 li1
[root@localhost ~]# id li1
uid=1001(li1) gid=1002(work1) 组=1002(work1)

使用usermod -G命令将用户追加到多个组里面 ,执行结果如下:

[root@localhost ~]# usermod -G work1,lichao,li1 li1
[root@localhost ~]# id li1
uid=1001(li1) gid=1002(work1) 组=1002(work1),1000(lichao),1001(li1)
[root@localhost ~]# 

使用usermod -d 更改用户的家目录,执行结果如下:

[root@localhost ~]# tail -n2 /etc/passwd
lichao:x:1000:1000::/home/lichao:/bin/bash
li1:x:1001:1002::/home/li1:/bin/bash
[root@localhost ~]# usermod -d /home/lichao li1
[root@localhost ~]# !tail
tail -n2 /etc/passwd
lichao:x:1000:1000::/home/lichao:/bin/bash
li1:x:1001:1002::/home/lichao:/bin/bash

使用usermod -l 修改用户名,执行结果如下:

[root@localhost ~]# usermod -l ldy li1
[root@localhost ~]# tail /group
[root@localhost ~]# tail -n5 /etc/passwd
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
lichao:x:1000:1000::/home/lichao:/bin/bash
ldy:x:1001:1002::/home/lichao:/bin/bash

使用usermod -L 锁定用户密码,使用usermod -U 解锁用户密码

[root@test-01 ~]# usermod -L lichao
[root@test-01 ~]# tail /etc/shadow
avahi:!!:17512::::::
avahi-autoipd:!!:17512::::::
postfix:!!:17512::::::
sshd:!!:17512::::::
lc1:!!:17521:0:99999:7:::
lc2:!!:17521:0:99999:7:::
lichao:!$6$scJg7AnT$iJx/pPM2mLK8sWq0NDRX5Dur9wWLEKWwL8Zb5iYG6Y5ioV.WZtFbTeGaDGb4EVxrEXIsFuq3QKZrPyVrNzZLF0:17522:0:99999:7:::
li1:!!:17526:0:99999:7:::
li3:!!:17526:0:99999:7:::
lic3:!!:17526:0:99999:7:::
[root@test-01 ~]# usermod -U lichao
[root@test-01 ~]# !tail
tail /etc/shadow
avahi:!!:17512::::::
avahi-autoipd:!!:17512::::::
postfix:!!:17512::::::
sshd:!!:17512::::::
lc1:!!:17521:0:99999:7:::
lc2:!!:17521:0:99999:7:::
lichao:$6$scJg7AnT$iJx/pPM2mLK8sWq0NDRX5Dur9wWLEKWwL8Zb5iYG6Y5ioV.WZtFbTeGaDGb4EVxrEXIsFuq3QKZrPyVrNzZLF0:17522:0:99999:7:::
li1:!!:17526:0:99999:7:::
li3:!!:17526:0:99999:7:::
lic3:!!:17526:0:99999:7:::
[root@test-01 ~]# 

二、用户密码管理

给用户设置密码的命令:passwd username

[root@test-01 ~]# passwd lichao
更改用户 lichao 的密码 。
新的 密码:
无效的密码: 密码包含用户名在某些地方
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@test-01 ~]# 

使用passwd -l 可以锁定一个账户的密码=usermod -L .使用passwd -u 可以给账户解锁=usermod -U 。 这里不再赘述。 还有一个给用户设置密码的命令,passwd --stdin username

[root@test-01 ~]# passwd --stdin lichao
更改用户 lichao 的密码 。
12345678
passwd:所有的身份验证令牌已经成功更新。

这种方式多用在脚本当中使用,其使用格式为 ,echo "12345678" |passwd --stdin username

[root@test-01 ~]# echo "11223344" |passwd --stdin lichao
更改用户 lichao 的密码 。
passwd:所有的身份验证令牌已经成功更新。

还有一种更改密码的方式,

[root@test-01 ~]# echo -e "1122334455\n1122334455"|passwd lichao

更改用户 lichao 的密码 。
新的 密码:无效的密码: 密码未通过字典检查 - 它基于字典单词
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。
[root@test-01 ~]# 

** 一个小知识点,echo -e 可以在这这条命令里出现一个换行符或Tab,使用方式如下:

[root@test-01 ~]# echo -e "11223344\n33445566"
11223344
33445566
[root@test-01 ~]# echo -e "11223344\t33445566"
11223344	33445566

在使用echo -e 命令是,后面跟的有两组字符串,并且两组字符串用“\”隔开,在“\”后加n执行后会换行显示,在“\”后面加t ,会隔开显示(相当于按了一下tab键)

三、mkpasswd工具

mkpasswd=make passwd,在使用之前要确定装有expect包,如果没有就需要先安装,运行mkpasswd 系统会生成一个比较安全的没有规律的字符串,可以用来当密码, 可以指定长度 mkpasswd -l ,可以指定特殊字符的个数,mkpasswd-s

[root@test-01 ~]# mkpasswd
hj96QC>oi
[root@test-01 ~]# mkpasswd -l 15
j5cesyIq1e%upLf
[root@test-01 ~]# mkpasswd -l 10 -s 0
6OOgpugpl1

猜你喜欢

转载自my.oschina.net/u/3731306/blog/1623150