侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 748 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

Linux基础(14)之修改用户属性

zze
zze
2019-10-22 / 0 评论 / 0 点赞 / 600 阅读 / 4560 字

修改用户属性

对已有用户属性修改需要使用 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.
0

评论区