9月20日任务
3.4 usermod命令
3.5 用户密码管理
3.6 mkpasswd命令
usermod命令
usermod命令可以更改用户属性。/etc/passwd中每一行用冒号分为七列,usermod大部分可以更改。主要参数有:
- u,修改用户uid,对应/etc/passwd第三列
- g,修改用户gid,可以组名或者组号,对应/etc/passwd第四列
- d,修改用户家目录,对应/etc/passwd第六列
- s,修改用户shell,对应/etc/passwd第七列
此外还有-G参数,修改用户附属组。默认情况下新建一个用户同时会创建一个与用户同名的所属组,这个是主组,还可以添加附属组。usermod -G root user1
这条命令就把user1添加到了root附属组。一个用户可以有多个附属组,添加多个附属组要同时列出,不然多次运行usermod -G命令会覆盖前面的附属组。
密码管理
passwd
直接修改当前用户的密码。passwd username
修改指定用户密码,只有所有者和root才有权修改。
用useradd添加新帐号后查看/etc/passwd会发现新创建账户密码位是两个叹号,这是没有设置密码,不能登录。如果密码位是星号,则代表帐号锁定。锁定可能是密码有效期到期,或者系统管理员锁定。
passwd -l username
命令锁定帐号,这时/etc/passwd密码位显示两个叹号。passwd -u username
解锁。此外,usermod也可以锁定帐号。usermod -L
锁定后/etc/passwd密码位显示一个叹号,用usermod -U
解锁。
passwd
修改、设置密码时默认会输入两边密码,这不利于批量管理密码,尤其是脚本管理。passwd --stdin username
可以只输入一次密码,没有交互界面,输入密码时会以明文显示密码。那么在编写脚本时,可以利用管道进行输入密码:echo "qqq" |passwd --stdin username
。
此外,也可以用\n
换行来实现两边输入密码。echo -e "123123\n123123" |passwd username
这样就实现了交互第二遍输入。两种方法都可行。
mkpasswd
mkpasswd
可以随机生成密码,建意使用提高帐号安全。使用前先安装:yum install -y expect
。
mkpasswd 默认生成9位密码,包含小写大写数字和特殊字符。可以指定密码长度,mkpasswd -l 12
生成12位的密码。还可以规定特殊符号的数量,mkpasswd -s 3
则密码中包含3个符号。可以选择没有特殊符号,不过那会将定帐号安全。想想现在多少人的密码里只有数字和小写字母?至少加入几个大写字母吧。