首页 > 代码库 > 用户组详解

用户组详解

用户组类似于用户账户,信息也保存在系统的一个文件中。/etc/group文件包含了系统上用到的每个组的信息。比如,本人的Ubuntu系统上的/etc/group文件前10行内容如下:

root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:craftor tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9:

类似于UID,GID也是用特定的格式分配的。系统账户用的组通常会分配低于500的GID值,而用户组的GID则会从500或1000开始(本人的Ubuntu13.04是从1000开始的)。/etc/group文件有4个字段:

- 组名
- 组密码
- GID
- 属于该组的用户列表

组密码允许非组内成员通过它临时性地成为该组的成员。这个功能并不是非常通用,但确实存在。
千万不能直接修改/etc/group文件来添加用户到一个组,而要用usermod命令。

***创建用户组***


# groupadd newgroup

然后用tail /etc/group命令查看最后一行。

创建新组时,默认没有用户属于该组成员。groupadd命令没有提供将用户添加到组的选项,可以用usermod命令来添加用户到该组:

# usermod -G newgroup user1 # usermod -G newgroup user2

然后用tail /etc/group查看结果

> 说明:如果更改了已登录系统账户所属的用户组,该用户必须登出系统后再登录,组关系的更改才能生效。

> 警告:在将用户添加到组的时候要小心。如果加了-g参数,指定的组名会替换掉该用户的默认组。-G参数则将该组添加到用户的所属组的列表里,而不会影响默认组。

***修改组***


# groupmod -n newgroup oldgroup

groupmod命令可以修改已有组的GID(-g参数)或组名(-n参数)。
修改组名时,GID和组成员不会变,只有组名会改变。由于所有的安全权限都是基于GID的,你可以随意改变组名而不会影响文件的安全性。