用户权限和组
从安全的角度(安全3A):用户组权限的过程可分为认证、授权、审计。
* Authentication:认证==》 登录的时候输入正确的用户名和密码、指纹、刷脸等来进行认证。
* Authorization:授权 ==》 根据不同的人设置不同的权限。
* Accouting|Audition:审计==》 监督机制,发生什么事情记录下来,之后审计。
用户user
一.令牌token,identity
令牌的概念:
我们下面以用户登录电脑访问文件为例讲述
当用户输入用户名、密码登录Linux系统后,系统会根据用户的UID和GID(像人的×××一样都是唯一的)回复用户一个令牌;在用户访问文件时因为有令牌的存在所以可以访问到文件。
(注意:如果用户发生了改变,如更改了UID,这时他还是可以访问文件,因为他已经拿到了令牌。如果用户退出系统重新登录,那用户会根据新的UID获取令牌来访问文件。)
二.Linux用户:Username/UID
1.从功能上分类
Linux用户分为管理员和普通用户
管理员
管理员:root,ID是“0”。
任何用户的ID是“0”,都代表这个用户是管理员。
普通用户
UID的范围是1-60000,自动分配。
普通用户又分为系统用户和登录用户。
系统用户
对守护进程获取资源进行权限分配。通俗的说,系统后台的一些服务程序,或者之后安装的软件也需要用户,这些用户的UID范围如下:
UID范围:1-499(CentOS6),1-999(CentOS7)
登录用户
交互式登录。
UID范围: 500+(CentOS6),1000+(CentOS7)
组group
一.概述
1.一个用户可以是多个组的成员。
2.用户和组的名字可以相同,Windows系统则不行。
3.将用户加入“root组”并不会成为管理员,Linux系统判断用户是不是管理只看它的UID是不是“0”。
二.Linux组: Groupname/GID
1.从功能上分类
Linux组分为管理组和普通组
管理组
管理组:root,ID是“0”。
任何组的ID是“0”,都代表这个组是管理组。
普通组
GID的范围是1-60000,自动分配。
普通组又分为系统组和普通组。
系统组
GID范围:1-499(CentOS6),1-999(CentOS7)
普通组
GID范围:500+(CentOS6),1000+(CentOS7)
2.从权限上分类
Linux组分为“主组”和“附加组”
主组
用户的主要组(primary group)
- 用户必须属于一个且只有一个主组
- 组名同用户名相同,而且组里只有这个用户,相当于这个用户的私有组
附加组
用户的附加组(supplementary group)
- 一个用户可以属于零个或多个附加组(有时候也叫辅助组)
用户和组的配置文件
一.Linux用户和组的主要配置文件
/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
前三个文件特别常用,也特别重要,最后一个文件基本不会用到。
1./etc/passwd
重要提示:尽量不要修改系统重要的文件,例如此文件,可以使用命令实现想要的功能。
查看/etc/passwd文件的内容,部分内容如下
可以看到每一行分七段,具体的格式是:六个“:”号分割了七个内容 。
以图中最后一行为例,解释格式:
niubin:x:1000:1000:niubin:/home/niubin:/bin/bash
用户:密码:UID:GID:用户描述信息:家目录:shell
注释:
1."x"是密码的意思,但密码的内容不再此文件,在/etc/shadow文件里,这里的“x”是“给密码占位”的意思
2.有的用户没有用户描述信息,有的有。可以用命令“chfn”添加用户的描述信息;当然你也可以直接在/etc/passwd文件里改,但是不推荐,因为修改错误会很麻烦,不如用相应的命令实现。
3.修改用户的“shell”可以用命令“chsh -s shell类型 用户名”;当然也可以在/etc/passwd文件里面修改,但是不推荐。
2./etc/group
查看/etc/passwd文件的内容,部分内容如下
可以看到每一行分四段,具体的格式是:三个“:”号分割了四个内容 。
以图中最后一行为例,解释格式:
niubin:x:1000:niubin
组名:密码:GID:组中的用户(有些用户当附加组,有些用户当主组)
"id 用户名"可查看此用户的主组和附加组
注意:如果你要给用户添加组,千万不要修改此文件来添加用户,因为这个和/etc/gshadow文件同步,要修改必须两个文件都改。所以可以用相应的命令实现。所以 **能用命令实现的,绝对不要修改文件去实现**
3./etc/shadow
查看/etc/passwd文件的内容,部分内容如下
可以看到每一行分九段,具体的格式是:八个“:”号分割了九个内容 。
以图中最后一行为例,解释格式: (man 5 shadow可查看详细信息)
niubin:$6$Xk6CbKlS$dCfMXwP9sYfhU11atXUdW395Eqp4n6QsytmlABW4bX1omO6eKBMolDMXbmvXcmlSfz0xTrgIklx05zr/Iumjv/:17969:0:99999:7:::
用户:sha512加密后的密码:创建或修改密码后,距离1970年的天数:修改密码口令最短有效期(单位:天):密码口令有效期,即能用多少天(单位:天):密码要到期了,提前多少天通知:自密码到期,如果不修改密码,还有多少天将锁定用户:账户有效期,多少天后锁定账户(前面说的都是密码,这里说的是用户):保留,留作以后添加使用
如果要修改密码,不建议在/etc/shadow文件操作,使用命令“chage 用户名”会更安全。如下:
注释:
1.验证距离1970年天数的算法,前提是你的系统时间准确,命令是“echo `data +%s`/3600/24|bc”
2.密码段的“!"号,表示密码被锁定,需要更改密码。
查看密码是否被锁定,就是看用户密码段的最前面有没有"!":cat /etc/shadow
锁定账户密码 useradd -L 用户名(锁定后密码段会有"!"号)
解锁账户密码 useradd -U 用户名(解锁后密码段的"!"号取消)
4./etc/gshadow
查看/etc/gshadow文件的内容,部分内容如下
可以看到每一行分四段,具体的格式是:三个“:”号分割了四个内容 。
以图中最后一行为例,解释格式:
niubin:x:1000:niubin
组名:密码口令:组的管理者:把这个组作为附加组的用户列表
文件操作
便捷的命令
- vipw和vigr
- pwck和grpck
vipw:使用vi文本编辑器编辑/etc/passwd文件(可检测语法错误)
vigr:使用vi文本编辑器编辑/etc/group文件(可检测语法错误)
pwck:检查/etc/passwd文件的格式语法错误
grpck:检查/etc/group文件的格式语法错误
原文地址:https://blog.51cto.com/13465487/2364602