Linux账号权限管理
账号和权限管理
linux安全模型
linux 安全上下文
vim 查看文件 f1
cat 查看文件 f1
人是系统中的用户
用户账号和组账号概述
Linux基于用户身份对资源访问进行控制
-
UID和GID
- UID(User IDentity,用户标识号),唯一
- GID(Group IDentity,组标识号),唯一
1. 用户账号管理
1.1 用户账号UID(User Id)
用户权限以UID表示,唯一,UID=0就是超级管理员
管理员:root 0
Linux中每个用户是通过User Id(UID)来唯一标识的 新建普通用户 1-60000 自动分配
程序用户:1-499(CentOS6以前),1-999(CentOS7以后)
普通用户:500+(CentOS6以前),1000+(CentOS7以后)
-
用户账号(UID)
-
超级用户(权限最大)、普通用户(权限受限的用户)、程序用户(程序用)
-
超级用户 0超级
-
普通用户、超级用户都是可以登录到系统中(受到系统某一类限制)
-
程序用户:给程序使用,管理程序的用户(黑客攻破用户,不能操作系统,只能对程序破坏)
-
-
1.2 用户账号文件/etc/passwd
所有文件都存在/etc/passwd下
-
文件位置:/etc/passwd
保存用户名称、宿主目录(家目录)、登录Shell等基本信息
root :x :0 :0 :root :root :/bin/shell
root | :x | :0 | :0 | :root | :root | :/bin/shell |
---|---|---|---|---|---|---|
用户名 | 密码占位符 | UID | GID | 用户说明 | 宿主目录 | 登录类型shell类型 |
- 每一行对应一个用户的账号记录
1.3 用户账号文件/etc/shadow
- 文件位置:/etc/shadow
保存用户密码,账号有效期等
1.4 添加用户账号useradd
- useradd命令
基本格式
useradd [选项] 用户名
对新建用户进行设置
useradd lisi -d /data/kk #指定家目录kk
-
新建用户未设置密码不能登录
-
!!和*不能登录
选项
-u:指定用户的UID号,要求该UID号码未被其他用户使用
-d:指定用户的宿主目录位置(当与-M一起使用时,不生效)
-e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-g:指定用户的基本组名(或使用GID号)
-G:指定用户的附加组名(或使用GID号)
-M:不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录
-s:指定用户的登录 Shell /sbin/nologin 类型
-r:创建系统用户CentOS 6之前:ID<500,CentOS 7以后:ID<1000 系统用户=程序用户
-c:备注信息
- 经常用的操作useradd -s /sbin/nologin -M -u 11111 ww
1.5 设置/更改用户口令passwd
- passwd命令
基本格式
passwd [选项] 用户名
useradd lisi=passwd
useradd lisi=shadow
passwd
1. passwd 【passwd是一个命令(改密码)】
2. cat /etc/passwd 【passwd是一个文件】
常用选项
-d:清除用户密码,仅使用用户名就可以登录
-l:锁定 不让用户登录
-u:解锁,使用-f强制解锁 对所有用户生效包括超级管理员
-S:查看用户账号状态(是否被锁)
1.6 修改用户账号的属性usermod
- usermod命令
基本格式
usermod [选项] 用户名
对已有用户进行设置
选项
-l:更改用户账号的登录名称(Login Name)
-L:锁定用户账户
-u:修改用户的 UID 号
-U:解锁用户账户
-d:修改用户的宿主目录位置。
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:修改用户的基本组名(或使用 GID 号)
-G:修改用户的附加组名(或使用 GID 号)
-s:指定用户的登录 Shell
1.7 删除用户账号userdel
- userdel命令
基本格式
userdel [-r] 用户名
添加-r选项,表示连用户的家目录一并删除,不加-r只会删除里面的
1.8 用户账号的初始配置文件
文件来源
- 新建用户账号,从/etc/skel目录中复制
- cat /etc/default/useradd
用户账号初始配置文件
- ~/.bash_profile
- ~/.bashrc
- ~/.bash_logout
/etc/bashrc
2. 组账号管理
2.1 组账号GID
- 组账号(GID)
- 一类人拥有相同权限
- 基本组(私有组),有且唯一
- 附加组(公共组),可有可无,可多个
- 一类人拥有相同权限
2.2 组账号初始配置文件
文件位置:/etc/group /etc/gshadow
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息(基本不使用)
2.3 添加组账号groupadd
格式
groupadd [选项] 组账号名
-g:指定组id
2.4 删除组账号groupdel
格式
groupdel 组账号名
2.5 组内管理gpasswd
gpasswd:添加、设置、删除组成员
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
gpasswd -d lisi wheel
# ! 取反 谁在后面谁生效
2.6 查询组账号信息
- groups命令
groups 用户名
查询用户所属的组
- id命令
格式
id 用户名
查询用户身份标识
- finger命令
先安装yum install finger -y
格式
finger 用户名
查询用户账号的详细信息,目前正在登录的用户
- w、who、users、whoami命令
wheel #超级管理员组
w #命令查询已登录到主机的用户信息
who #命令只能显示当前登录的用户信息,无法知晓每个用户正在执行的命令
users #命令简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话。 如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数。
whoami #查看当前登录用户信息
3.权限掩码umask
umask 作用控制新建文件或文件夹的权限
文件默认最大权限为666,因为x执行权限很危险,所以需要去掉 777-111=666
文件夹默认最大权限为777
新建文件默认权限=666-umask(umask中含有1 是不需要减去的)
新建文件夹/目录默认权限=777-umask
非特权用户的umask默认002
root的umask默认022
umask是需要减去的权限
普通权限对root无效
问题:
执行cp /etc/issue /data/dir/所需要的最小权限?
/bin/cp #需要x权限
/etc/ #需要x权限
/etc/issue #需要r权限
/data #需要x权限
/data/dir #需要wx权限
3.1 文件/目录的权限和归属
归属
- 属主 u
- 属组 g
- 其他人 o
- 所有人 a
访问人群 | |
---|---|
u | 所属主 |
g | 所属组 |
o | 其他人 |
a | 所有人 |
访问权限:
- 读取r:允许查看文件内容、显示目录列表
- 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
- 可执行x:允许运行程序、切换目录
权限 | |
---|---|
读 | r,4 |
写 | w,2 |
执行(程序、脚本) | x,1 |
3.2 对文件的权限
- 一个文件是否可以被删除和本身权限没有关系,和所在文件夹有关
r #可使用文件查看类工具,如cat
w #可修改其内容
x #可以执行此文件(文件内容必须是可执行)
3.3 对目录的权限
- 执行权限是文件夹的最小权限,如果没有x权限,文件夹的rw权限没有用
r #可以使用ls查看目录中文件列表
w #可以在此目录中创建文件,也可以删除此目录中的文件,与权限无关
x #可以cd进入此目录,可用ls -l查看此目录中文件元数据(配合r权限)
3.4 修改
chmod 修改权限
chmod 对谁(u,g,o,a)操作(+,-,=) 权限(r,w,x) 文件
chmod -R 递归修改
chown 修改所属主
chown 用户:组名 文件名
chown -R 递归修改
chown -R zhangsan:zhangsan /opt/aa/
用户 组名 文件名
3.5 三种特殊权限
suid
SGID
Sticky