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