Linux 用户管理(一)
讲讲 Linux 中用户以及用户组相关的一些知识吧。
用户
首先介绍一个一个文件:/etc/passwd
,这个文件中存储了一下与用户相关的信息,举个例子:
内容大概是上面这个样子的,在行数上我做了一些删减,可以看到每一行都代表了一个用户,我们看看每一行的含义,以第一行为例吧。
可以看到常见的一行用户信息包含七个部分(由 :
分割),下面分别解释一下每一个部分的含义。
- 用户名
- 用户密码,曾经 UNIX 的密码就存储在这个字段上面,由于存在安全隐患,后来移到了
/etc/shadow
文件下面 - 用户的 UID
- 用户的 GID
- 用户信息说明,在功能上没有实际用处
- 用户的主文件夹
- 用户的默认 Shell
在 Linux 中,UID 的数值有一些特殊的含义,当 UID 为 0 的时候,代表该账号是系统管理员,当 UID 为 1-499 的时候,表示是系统账号,然后其他范围是可登陆账号。
用户组
就像上面介绍的用户相关文件 /etc/passwd
一样,用户组也有一个类似的文件,该文件为 /etc/group
,让我们看一下该文件中的内容。
这个文件内容长这个样子(对行数有删减),可以看到与 /etc/passwd
有相似之处,让我们解释一下各个字段的含义。
可以看到一共有四个字段。
- 用户组名称
- 用户组密码,同样,由于安全原因,用户组密码移动到了
/etc/gshadow
中去了,另外,平常也怎么会用到/etc/gshadow
- 该用户组的 GID
- 该用户组支持的账号名称
其他
看到这里,细心的你会发现,在用户文件中,有一个字段表示为 GID,而在用户组文件中,第四个字段则为用户组支持的账号名称,你可能会觉得奇怪,为什么在两个地方同时存在了类似的信息。下面我来解释一下。
这就涉及到了初始用户组和次要用户组了。在用户文件中的 GID 字段,表示该用户的初始用户组,当用户登录到系统的时候,就获得了初始用户组相关的权限。而在用户组文件中列举的该用户组支持的账号名称,则表示该用户组是所列举用户的次要用户组。所以,如果一个用户组是某个用户的初始用户组,则不需要将该用户填到该用户组的第四个字段。
拿我上面举的例子说明,用户 root
的初始用户组 GID 为 0,即用户组 root
,可以看到,用户组 root
的第四个字段为空。
然后再说一下有效用户组,通过上面的介绍,我们知道,一个用户可以属于多个用户组,我们也知道,创建文件的时候文件在用户组方面会有相应的权限,那么,当你创建一个文件的时候,这个文件属于的用户组是什么呢?者涉及到有效用户组,使用 groups
命令可以查看有效用户组。
位列第一个的用户组即有效用户组,创建的文件所属的用户组为有效用户组的。
我们也可以切换有效用户组,使用 newgrp
即可.
一个小知识点事,newgrp
会创建一个新的 shell
进程。
这就是有关用户和用户组的一些简单的知识了,下面再写一篇文章介绍一些用户管理相关的命令。