一、linux用户组
每一个进程都在一个给定的用户环境下运行,用户和他们所运行的进程以及他们所拥有的文件都属于一个组的集合。组成员身份允许系统管理员有效地管理具有相似对象的用户。
每个用户都隶属于一个 主要组 。用户可还以属于多个 次要组 。
二、linux用户组数据库
/etc/group
和/etc/passwd类似,这里存放用户组信息,用户组名和用户级ID通过这个文件进行关联。下面老陌截取一段配置文件中的行:
编号 | 说明 |
---|---|
1 | 组名 |
2 | 组密码,可以给组提供一个密码,但很少这样做 |
3 | 组ID, 组ID写成gid,和组名对应。 |
4 | 组成员,这里是用户列表,多个用户之间用,隔开 |
三、为什么使用组
组成员身份最常用来确定谁能访问系统上的资源。文件系统上每一个文件都有一个用户所有者和一个组所有者。
我们来分析一下下面的代码:
老陌这样想:用户testa,testb,test是属于一个组的,如果把组看成家,它们三个是一家的。 它们三个都有自己的文件,但是他们因为是一家的,这个家里很和睦,所以都有权力访问和修改对方的文件(老陌观察test用户比较自私只能看不能改)。但是cclove和test是不同的组(不同的家),所以cclove用户与testa,testb,test用户没有直接关系,当然也不能访问不同组之间的文件了。
四、主要组和次要组
一个文件必须有一个组所有者,因此必须有一个与每个用户相关的默认组。这个默认组成为新建文件的组所有者,被称为用户的主要组。用户的主要组在/etc/passwd第四个字段中定义。
除了主要组以外,用户也可以根据需要隶属于其它组,这些组被称为次要组,在/etc/group文件的第四个字段中定义这个组是哪些用户的次要组。
总之:
- 用户的主要组ID在/etc/passwd文件中的第四个字段定义。
- 用户的主要组名称与/etc/group文件中的组ID相关。
- 将用户名添加到/etc/group文件中合适行的第四个字段,定义用户的次要组。
五、如何更改组成员身份
只有管理员才有权限更改组成员的身份,可以用usermod, groupmod命令进行修改。usermod可以修改用户的信息,比如用户主目录,登录shell,主要组,附加组等。groupmod用于修改组的信息等。 这里先略过这两个命令,因为还需要学一些基础知识。