用户一般来说是指使用计算机的人,计算机针对使用其的每一个人给了一个特定的名称,用户就可以使用这些名称来登录使用计算机,除了人之外,一些系统服务也需要含有部分特权的用户账户运行。因此出于安全考虑,它加以明确限制各个用户账户的权限,root在计算机中用拥有至高特权,所以一般只作管理用,非特权用户可以通过su或sudo命令程序来临时获得特权。

GNU/Linux 通过用户和用户组实现访问控制,包括对文件访问、设备使用及控制、等等。

个人可以拥有多个账户,只是彼此名称不相同,比如root名称已经占用就不能再用了,此外,任意用户可以从属某个用户组,此用户可以加入某些已经存在的组来获得该组的特权。

GNU/Linux 系统中的每一个文件都有属一个用户(属主)和一个用户组(属组)。另外,还有三种类型的访问权限:读(read)、写(write)、运行(execute)。我们可以针对文件的属主、属组、进行设置相应的访问权限。再次,我们可以通过 ls | stat命令查询文件属主、属组和权限。 [root@xuegod63 ~]# ll | head -2 #使用ll查看当前目录下,并把输出结果只显示前两行。 总用量 8 -rw-------. 1 root root 1680 9月 19 2017 anaconda-ks.cfg

[root@xuegod63 ~]# stat anaconda-ks.cfg 文件:"anaconda-ks.cfg" 大小:1782 块:8 IO 块:4096 普通文件 设备:803h/2051d Inode:33574991 硬链接:1 权限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root) 最近访问:2018-02-03 01:09:35.552324534 +0800 最近更改:2018-02-02 23:47:56.692063786 +0800 最近改动:2018-02-02 23:47:56.692063786 +0800

用户账号 用户: 用户用于标识资源获取者的身份。

组: 组是个用户容器,这个容器并不是用户,也不是特定的资源使用者,而此容器还可以关联权限,只要某个用户放到某个容器上,某个用户就有了该容器的权限,而此容器称为用户组,组也可以理解为权限的容器或者是权限的集合,而这些权限的集合可以附加在某些用户上,从而让某些用户拥有该容器的权限,所以组是个逻辑概念,组是不能登录计算机、也不能使用某些资源,只是用于方便的指派权限。

用户的分类 1.Linux用户三种角色 (1) 超级用户:root 拥有对系统的最高的管理权,即用户ID=0。 (2) 普通用户(包含本地用户)在不同的系统版本中,普通用户、本地用户的UID号取值范围不相同。 CentOS 7版本:系统用户 UID号为1-999,本地用户UID号1000以上。 CentOS 6版本:系统用户 UID号为1-499,本地用户UID号500以上。 UID:即每个用户的身份标示,类似于每个人的×××号码。 (3) 虚拟用户:伪用户,一般不会用来登录系统的,它主要是用于维持某个服务的正常运行,如:ftp、apache。

下图是用户和组的关系,如图 6-1 所示: (1) 一对一:一个用户可以存在一个组中 (2) 一对多:一个用户可以存在多个组中 (3) 多对一:多个用户可以存在一个组中 (4) 多对多:多个用户可以存在多个组中 图 6-1 用户和组关系图 配置文件,如表 6-1 所示。 名 称 帐号信息 说 明 用户配置文件 /etc/passwd 记录了每个用户的一些基本属性,并且对所有用户可读,每一行记录对应一个用户,每行记录通过冒号进行分隔 用户组文件 /etc/group 用户组的所有信息存放地儿,并且组名不能重复 用户对应的密码信息 /etc/shadow 因为passwd文件对所有用户是可读的,为安全起见把密码从passwd中分离出来放入这个单独的文件,该文件只有root用户拥有读权限,从而保证密码安全性 表 6-1 用户配置文件说明