Linux用户和用户组基础

本节主要讲述Linux系统中用户和用户组概念的基础。
1. 什么是用户(user)
Linux是一个多用户和多用户组的系统。当我们使用Linux时,需要以一个用户的身份登陆,一个进程也需要以一个用户的身份运行。配合Linux的权限管理机制,可以做到限制用户或者进程可以使用、不可以使用哪些资源,这就组成了Linux系统以用户为基础的基本安全体系。
用户通过uid来识别,用户的uid是全局唯一,Linux用户分三大类:
  • root用户:超级用户,可以用来登录,操作系统任何文件和命令,拥有最高权限,可以操作系统中任意文件和进程,类似于Windows系统的Administrator权限账户。默认uid为1。
  • 虚拟用户:不具有登录能力,系统本身拥有,不是后来添加的,但是系统运行不可缺的。默认uid为2-500。
  • 普通用户:有登录能力(也可关闭登录),权限受到限制。默认uid为501及以后。
2. 什么是用户组(group)
用户组(group)就是具有相同特征的用户(user)的集合体,类似于一个团队的概念。有时我们需要让多个用户具有相同的权限,而不希望对他们单一的配置,这时我们需要用户组。我们把用户都定义到同一用户组,通过修改文件或目录的权限来配置对个别用户组的权限,这样用户组下的用户对该文件或目录都具有相同的权限。
3. 用户和用户组的对应关系
用户和用户组的对应关系是:一对一、多对一、一对多或多对多;
一对一:某个用户可以是某个组的唯一成员;
多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;比如beinan和linuxsir两个用户只归属于beinan用户组;
一对多:某个用户可以是多个用户组的成员;比如beinan可以是root组成员,也可以是linuxsir用户组成员,还可以是adm用户组成员;
多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组。