Linux之用户管理与权限控制

早期Linux系统设计为了能够实现多用户、多进程高效的利用服务器资源,在此种情况下,为了能够保证用户与用户之间的文件不被随意的访问及修改、删除等操作,用户、组的管理能在某种程序上实现管理用户或批量管理用户。由于Linux的设计哲学思想『一切皆文件』,用户对设备的访问就是对文件的访问。

一、用户与组

Linux下有三类用户

1.超级用户: root 具有操作系统的一切权限 UID 值为0

2.普通用户:

普通用户具有操作系统有限的权限, UID值 500+

3.伪用户:

是为了方便系统管理, 满足相应的系统进程文件属主的要求, 伪用户不能登录系统,CentOS6 UID值 1 -- 499,CentOS7 UID值为1 -- 999.

二、安全上下文

当一个用户发起一个进程时,此进程将继承用户的属主、属组的权限,再以进程继承的权限来控制文件的访问权限。

例如:

[root@localhost~]# /bin/cat FILE  ##取决于root用户对FILE文件拥有的权限 [young@localhost~]$ /bin/cat FILE ##取决于young用户对于FILE文件的拥有权限 三、组的类别

用户的主要组(主组): 用户必须属于一个且只有一个主组 组名同用户名,且仅包含一个用户:私有组

用户的附加组(辅助组): 一个用户可以属于零个或多个辅助组

四、用户和组的配置文件

1.Linux用户和组的主要配置文件

/etc/passwd:用户及其属性信息(名称、 UID、主组ID等),可使用vipw命令编辑,使用pwck命令校验格式,无效用户等

/etc/group:组及其属性信息,可使用vigr命令编辑,可使用grpck校验格式,无效组等

/etc/shadow:用户密码及其相关属性,可使用pwck命令校验格式无效用户等

/etc/gshadow:组密码及其相关属性,可使用grpck校验合适,无效组等

2.配置文件格式说明

/etc/passwd

root:x:0:0:root:/root:/bin/bash 用户名:密码:UID:GID:用户注释信息:用户家目录:Shell定义

用户名: 用户的名称 密码: X表示占位符,也可以是密码 UID: 用户识别代码 GID: 用户所属组的GID(基本组) 用户注释信息:Comment,可以完善用户的基本信息 用户家目录: 系统登录用户后的工作目录 shell: 定义用户登录系统所使用的shell,指定的shell需要在/etc/shells中出现

/etc/shadow

root:$6$YqkEsOcfKPptyhnS$YD0ym4BZ52pzcCnU....:16781:0:99999:7::: 用户名:密码:上一次修改密码的时间:密码最小使用期限:最长使用期限:警告时间:帐户过期时间:保留字段

用户名: 用户的名称,对应/etc/passwd文件中 密码: Centos6中使用MD5加密算法,Centos7中使用sha1的算法,第一个$后面加密算法类型,第二个$后面表示salt,第三个$后面表示密码的提取码(参照加密类型) 上一次修改密码的时间: 指用户上次修改密码的时间,计算方法:从Linux元年1970年01月01日0点0分到目录所经过的秒数 密码最小使用期限: 指用户修改密码后,需要到多少天后方可更改密码,0表示禁用 密码最长使用期限: 指用户的密码到多少天后需要修改密码 警告时间: 指用户密码到期前多少天提示用户修改密码,0和空字段表示禁用此功能 帐户过期时间: 批帐户在密码过期后多少天还未修改密码,将被停用

/etc/group

root:x:0: 组名:密码:GID:User_list

组名:组的名称,默认同名用户名 密码: 组的密码占位符,用于用户临时切换至需要的组以获取相应权限,可以使用newgrp GROUP_NAME切换 GID:组的全局识别号 User_list:隶属此组的用户,多个用户使用","隔开

/etc/gshadow

root:$6$PLRAi/Z/svr$PRelPtvLuGJqvFG3D8fbjYHDho2RQUe93glO.:: 组名:密码:组管理者:User_list

组名:组的名称,同步/etc/group文件中 密码:第一个$后面表示加密算法,第二个$后面表示加密的密码 组管理者:可以对此组成员有操作权限,如果有多个,可以用逗号隔开 User_list: 用户的列表,如果有多个,可以使用逗号隔开 五、用户和组管理命令

1.用户管理命令

a、useradd

useradd - create a new user or update default new user information synopsis: useradd [options] LOGIN           useradd -D [options] options:     -u : 指定用户的UID     -g : 指明用户所属基本组,可为组名,也可以GID,组或者GID必须存在     -c : 指定注释信息,如果有空格,需要使用" "包含     -d : 指定用户家目录,创建用户时,会自动将/etc/skel中的文件复制到用户家目录下,如果指定的文件存在将不会复制文件,如果父目录不存在,创建也将会失败     -s : 指定用户shell     -r : 指定创建一个系统用户     -M :不创建用户家目录     -G : 指定附加组,多个使用逗号隔开     -D :修改创建用户的配置信息,文件位于/etc/default/useradd         注:创建用户时的诸多默认设定配置文件为/etc/login.defs

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14364.html