【终端使用】"usermod"命令 和 组(包括:主组、附加组)

 "usermod"命令,可以用来设置用户账户的 主组、附加组、登录使用的Shell。

命令 作用
usermod -g 组名 用户名 修改用户的主组(gid)
usermod -G 组名 用户名 修改用户的附加组,会覆盖之前的附加组。
usermod -a -G 组名 用户名 追加用户的附加组,必须和"-G"选项一起使用。
usermod -s /bin/bash 修改用户登录的Shell

一、"/etc/passwd"文件 和 "/etc/group"文件

1、可以从"/etc/passwd"文件中查看用户信息

2、可以从"/etc/group"文件中查看组信息。(所有的组,都保存在这个文件中,没有主组,附加组的区分!!!)。

二、主组 和 附加组 是相对而言

如下图中:

"gid=1000(greamrod)"就是主组,所以"组=1000(greamrod),"也是主组。

剩余的"组=4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare),1002(my_dev)"为附加组。

如下图:

将原本的"gid=1000(greamrod)"主组,修改为"gid=1002(my_dev)"。 

注意:使用"usermod"命令修改了 主组、附加组、登录Shell 之后,都要退出重新登录后,在生效!!!

 如下图:

原本的"my_dev"附加组,成为了"gid=1002(my_dev)"主组。

主组为:"gid=1002(my_dev) 组=1002(my_dev),"。

附加组为:"组=4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)"。

 如下图:

三、"usermod"命令的使用

"usermod"命令,可以用来设置用户账户的 主组、附加组、登录使用的Shell。

 案例一:修改用户的主组(gid)

usermod -g 组名 用户名 修改用户的主组(gid)

1、新建一个"zhangsan"用户,要求有 用户主目录、组名与用户名同名,密码为"123456"。

2、将"zhangsan"用户所属的主组(gid),修改为"my_dev"。

案例二:修改用户的附加组

usermod -G 附加组 用户名 修改用户的附加组,会覆盖原先的附加组。
usermod -a -G 附加组 用户名 添加用户的附加组,不会覆盖原先的附加组。

①设置了用户的附加组之后,需要重新登录才能生效!!!

②使用"useradd"命令添加的用户,默认是没有权限使用"sudo"以"root"身份执行命令的。

1、比较新建"zhangsan"用户 与 系统管理员用户"greamrod"用户,发现"zhangsan"用户,没有任何附加组。

 2、给"zhangsan"用户添加,"zhangsan"、"adm"、"sudo"组。

 3、将"zhangsan"用户的附加组,全部清空。

案例三:修改用户登录的Shell

usermod -s /bin/bash 修改用户登录的Shell

提示:设置了用户的附加组之后,需要重新登录才能生效!!!

1、创建"zhangsan"用户时,没有指定登录的Shell。所以Ubuntu系统默认使用了"/bin/sh"

 2、将"zhangsan"用户的登录Shell,更改为"/bin/bash"。(推荐使用"bash")

原文地址:https://www.cnblogs.com/greamrod/p/12448971.html