修改用户属性
对已有用户属性修改需要使用 usermod
命令,使用和 useradd
命令也及其相似,详细使用可通过 man usermod
查看。
使用格式:
usermod [OPTION] USERNAME
修改UID
可通过 -u
选项修改用户的 UID,例:
[root@localhost ~]# usermod user2 -u 1010
[root@localhost ~]# id user2
uid=1010(user2) gid=1000(user2) 组=1000(user2)
修改基本组
可通过 -g
选项修改用户的基本组,例:
[root@localhost ~]# groupadd user2group
[root@localhost ~]# usermod user2 -g user2group
[root@localhost ~]# id user2
uid=1010(user2) gid=1001(user2group) 组=1001(user2group)
修改附加组
可通过 -G
选项修改用户的附加组,例:
[root@localhost ~]# groupadd user2group1
[root@localhost ~]# groupadd user2group2
[root@localhost ~]# usermod user2 -G user2group1,user2group2
[root@localhost ~]# id user2
uid=1010(user2) gid=1001(user2group) 组=1001(user2group),1002(user2group1),1003(user2group2)
要注意的是新添加的附加组会覆盖原来的附加组,例:
[root@localhost ~]# usermod user2 -G user2group1
[root@localhost ~]# id user2
uid=1010(user2) gid=1001(user2group) 组=1001(user2group),1002(user2group1)
若需要保留原有的附加组,则要同时使用 -a
选项(表示 append),例:
[root@localhost ~]# usermod user2 -a -G user2group2
[root@localhost ~]# id user2
uid=1010(user2) gid=1001(user2group) 组=1001(user2group),1002(user2group1),1003(user2group2)
修改默认shell
可通过 -s
选项修改用户默认使用的 shell,例:
[root@localhost ~]# usermod user2 -s /bin/sh
[root@localhost ~]# tail -1 /etc/passwd
user2:x:1010:1001::/home/user2:/bin/sh
修改备注信息
可通过 -c
选项修改用户的备注信息,例:
[root@localhost ~]# usermod user2 -c 测试备注
[root@localhost ~]# tail -1 /etc/passwd
user2:x:1010:1001:测试备注:/home/user2:/bin/bash
修改家目录
可通过 -d
选项修改用户的家目录,例:
[root@localhost ~]# mkdir /tmp/user2home
[root@localhost ~]# usermod user2 -d /tmp/user2home/
[root@localhost ~]# cd ~user2
[root@localhost user2home]# pwd
/tmp/user2home
要注意的是,用户原来家目录中的文件不会移动到新的家目录,查看新目录下的文件:
[root@localhost ~]# ls -a /tmp/user2home/
. ..
如果需要在修改家目录的同时将用户原来家目录中的文件移动到新的家目录,则可使用 -m
选项,如下:
[root@localhost ~]# useradd user3
[root@localhost ~]# usermod user3 -d /tmp/user3home -m
[root@localhost ~]# su - user3
[user3@localhost ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc
[user3@localhost ~]$ ls -a /home/
. ..
可以看到,原来的家目录中的文件移动到了新指定的家目录,而原来的家目录被删除了。
要注意的是,使用
usermod
命令指定的新的家目录需要是事先不存在的,不然会报目录不存在的错误。
修改用户名
可通过 -m
选项修改用户的用户名,例:
[root@localhost ~]# usermod user3 -l zze
[root@localhost ~]# su - zze
上一次登录:二 9月 10 14:33:04 CST 2019pts/1 上
-bash-4.2$ exit
锁定指定用户
可通过 -L
选项锁定指定用户,例:
[root@localhost ~]# usermod -L zze
执行该锁定操作后在
/etc/passwd
文件中对应的用户密码前将会加一个!
,前提是用户已设置了密码。
解锁指定用户
可通过 -U
选项锁定指定用户,例:
[root@localhost ~]# usermod -U zze
执行该解锁操作后在
/etc/passwd
文件中对应的用户密码前的!
将会去掉,前提是用户已设置了密码。
补充命令
chfn
chfn
命令用来设置用户的备注信息,相当于使用 usermod -c
,只不过 chfn
提供了交互式地更详细的设置方式,例:
[root@localhost ~]# chfn tom
Changing finger information for tom.
名称 []: Big Tom
办公 []: White House
办公电话 []: 110
住宅电话 []: 119
Finger information changed.
[root@localhost ~]# tail -1 /etc/passwd
tom:x:1000:1001:Big Tom,White House,110,119:/home/tom:/bin/bash
可以看到输入的详细描述信息以 ,
分隔保存在 /etc/passwd
文件中。
设置完成后还可以通过 finger <USER>
命令查看,如下:
[root@localhost ~]# finger tom
Login: tom Name: Big Tom
Directory: /home/tom Shell: /bin/bash
Office: White House, 110 Home Phone: 119
Never logged in.
No mail.
No Plan.
chsh
chsh
命令是用来修改用户默认使用的 shell,相当于执行 usermod -s
来修改的效果,只不过它是以交互式的方式进行修改,如下:
[root@localhost ~]# chsh tom
Changing shell for tom.
New shell [/bin/bash]: /bin/sh
Shell changed.
评论区