### 修改账户信息
#### 格式
```bash
usermod -参数 账户名
```
#### 参数
- 常用参数 -c,-d,-m,-g,-G,-s,-u 等,意义与useradd命令中的参数相同
- -l 新账户名:更改账户的名称,必须在该用户未登录的情况下才能使用
- -L:锁定(暂停)用户账户,使其不能登录使用
- -U:解锁用户账户
#### 示例
- 例1:将用户test1的名称修改为TEST1,并暂停使用该账号
```bash
[root@server ~]# usermod test1 -l TEST1 -L
```
- 例2:将上例账户test4的家目录移至/home/test4目录下
```bash
[root@server ~]# ls /home
[root@server ~]# mkdir /home/test4
[root@server ~]# usermod test4 -d /home/test4
[root@server ~]# tail -1 /etc/passwd
test4:x:3001:1001::/home/test4:/bin/bash
```
### 账号设置密码
#### 原则
- Linux的账户必须设置密码后,才能登录系统
#### 格式
```bash
passwd - 参数 账户名
```
#### 参数
```bash
-d:清空指定用户的口令,与未设置口令的账户不同,未设置口令的账户无法登录系统,而口令为空的账户可以。
-e:使用户的账号密码立即过期,强迫用户下次登录时必须修改口令。
-i:口令过期后多少天停用账户。
-l:锁定(停用)用户账户。
-n:指定口令的最短存活期。
-x:指定密码的最长使用期限。
-u:解锁用户账户。
```
#### 示例
- 例1:设置root账户密码
```bash
[root@server ~]# passwd root
更改用户 root 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
```
- 例2:为上例test2、test4设置密码
- 例3:锁定账户test2,尝试登录
```bash
[root@server ~]# passwd -l test2
```
#### 注意
- 密码不能为空
- 密码不要写成回文
- 可以使用以下命令设置密码
```bash
echo 密码 | passwd --stdin 用户名
```
```bash
echo 密码 | passwd --stdin 用户名 > /dev/null # 无信息提示
```
- 只有 root 用户才能指定用户名
```bash
[root@server ~]# useradd test5
[root@server ~]# passwd test5
更改用户 test5 的密码 。
新的密码:
无效的密码: 密码少于 8 个字符
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
[root@server ~]# su test5
[test5@server root]$ passwd test5
passwd:只有 root 户才能指定用户名。
```