上一帖提到用户与用户组的创建,在创建的过程中,我们可以搭配很多参数,用来设置用户账户的一些设置与属性。但很多时候,我们的用户账户是已经在业务中使用的。不可能去删除用户后重新添加。这时,就需要去直接调整已有用户的账户属性了。
在这种场景中,我们有两种解决的方式。第一种就是改配置文件。linux中一切皆文件。在配置文件中调整相应的设置即可。但这种调整方式比较麻烦,不仅要知道配置文件的路径名称,而且要找到配置用户所在的配置行,还要知道配置段的各个涵义,然后才能去做调整。对于初学者而言难度较大。第二种方式就相对简单了很多。使用usermod命令,简单明了。
下面就简单介绍下usermod用法:
命 令 | 可选参数 | 作 用 |
usermod | -u | 指定用户的UID |
-g | 指定用户的GID | |
-d | 指定用户的家目录 | |
-s | 指定用户的shell | |
-G | 指定新的附加组 | |
-L | 锁定用户账号 | |
-U | 解锁用户账号 |
测试示例:
[root@server02 ~]# useradd newuser [root@server02 ~]# tail -1 /etc/passwd newuser:x:1115:1116::/home/newuser:/bin/bash [root@server02 ~]# usermod -u 1110 -g 1110 newuser [root@server02 ~]# tail -1 /etc/passwd newuser:x:1110:1110::/home/newuser:/bin/bash [root@server02 ~]# usermod -d /home/newuser01 -s /sbin/nologin newuser [root@server02 ~]# tail -1 /etc/passwd newuser:x:1110:1110::/home/newuser01:/sbin/nologin [root@server02 ~]# usermod -G 1000 newuser [root@server02 ~]# id newuser //id命令用于查看账户属性 uid=1110(newuser) gid=1110(grp100) 组=1110(grp100),1000(user1) [root@server02 ~]# passwd newuser 更改用户 newuser 的密码 。 新的 密码: 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 [root@server02 ~]# usermod -U newuser [root@server02 ~]# tail -1 /etc/shadow newuser:$6$5ac7Kh.y$S4gRnb......rBB/YCs/8DM9ZN13aeLiNUllUB/:17316:0:99999:7::: [root@server02 ~]# usermod -L newuser [root@server02 ~]# tail -1 /etc/shadow //锁定后密码前面有感叹号 newuser:!$6$5ac7Kh.y$S4gRnb......rBB/YCs/8DM9ZN13aeLiNUllUB/:17316:0:99999:7::: [root@server02 ~]# usermod -U newuser [root@server02 ~]# tail -1 /etc/shadow newuser:$6$5ac7Kh.y$S4gRnb......rBB/YCs/8DM9ZN13aeLiNUllUB/:17316:0:99999:7:::
在上面的示例中,使用了passwd设置账户的口令。
passwd命令有以下几种用法:
[root@server02 ~]# passwd --help 用法: passwd [选项...] <帐号名称> -k, --keep-tokens 保持身份验证令牌不过期 -d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作) -l, --lock 锁定指名帐户的密码(仅限 root 用户) -u, --unlock 解锁指名账户的密码(仅限 root 用户) -e, --expire 终止指名帐户的密码(仅限 root 用户) -f, --force 强制执行操作 -x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作) -n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作) -w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作) -i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作) -S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作) --stdin 从标准输入读取令牌(只有根用户才能进行此操作) Help options: -?, --help Show this help message --usage Display brief usage message
其中特别注意的是“-l”和“-u”,它们是用于锁定和解锁账户的。还有参数“--stdin”的用法,示意如下:
[root@server02 ~]# echo "123456" |passwd --stdin newuser 更改用户 newuser 的密码 。 passwd:所有的身份验证令牌已经成功更新。 [root@server02 ~]# echo -e "123456\n123456" |passwd newuser //“-e”表示支持换行 更改用户 newuser 的密码 。 新的 密码:无效的密码: 密码少于 8 个字符 重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。