用户身份与文件权限
用户身份与能力
UID值
(User IDentification的缩写)每个用户都有对应的UID值,就像身份证号码
超级用户UID:root用户默认为0
系统用户UID1-999:系统中系统服务由不同用户运行,更加安全,默认被限制登录系统
普通用户UID1000-:即管理员创建的用于日常工作而不能管理系统的普通用户
(注意UID一定是不能冲突的,管理员创建的普通用户UID从1000开始,即便前面有闲置的号码)
账户名称与UID保存在/etc/passwd文件中,而账户密码则保存在/etc/shadow文件中
GID
(Group IDentification的缩写):可将多个用户加入某个组,方便指派任务或工作
每个用户在被创建时均会创建一个默认组(其GID与UID相同,俗称基本组)而后加入的则叫拓展组,一定要分清楚。
用户组名称与GID保存在/etc/group文件中
文件权限与归属
linux中一切都是文件,文件和目录的所属与权限——来分别规定所有者、所有者、其余人的读、写、执行权限
读(read)、写(write)、执行(excute),简写(r,w,x),也可用数字(4,2,1)表示
第一位代表文件类型:
- | 普通文件 |
---|---|
d | 目录文件 |
l | 链接文件 |
b | 块设备文件 |
c | 字符设备文件 |
p | 管道文件 |
普通文件即实际保存数据的地方,其并不具备删除自身的权限:
r:可读取文件的实际内容
w:可编辑/新增/修改该文件的实际内容
x:可被执行
目录文件即保存有目录结构和文件权限:
r:可读取目录结构和权限
w:可更爱目录结构列表,新建/删除/重命名/、转移子文件/目录
x:表示用户可进入到该目录中
文件的特殊权限
单纯对文件位置的rwx权限肯定不能满足我们对于安全、便捷工作的需求,所有便有了SUID和SGID的特殊权限机制
SUID
让执行者临时拥有主的权限(仅对有执行权限的二进制程序有效)
比如所有用户都可以执行用于修改用户密码的passwd命令,单用户密码保存在/etc/shadown文件中,默认权限是000即除了root外所有用户都没有查看或编辑该文件的权限,所以对passwd命令加上SUID权限位,则可让普通用户临时获得程序所有者的身份,即以root用户的身份将变更的密码信息写入到shadow文件中。
SGID
功能一:让执行者临时拥有属组的权限(对拥有执行权限的二进制程序设置)
文件的隐藏属性
文件权限除了读写执行与SUID、SGID、SBIT外还有一种隐藏权限,例如明明有权限删除某个文件却报错了,或者仅能为某个文件追加内容而不能减少内容,遇到这种很”奇怪”的文件,就要怀疑是文件被设置隐藏权限了
主要命令:
chattr
lsattr
文件访问控制列表
rwx权限、特殊权限、隐藏权限都是对某一类用户设置的,如果对某个制定的用户进行单独的权限设置,那么就需要用文件的访问控制列表来实现啦。
我们可以基于普通文件或目录设置进行设置ACL,通俗来说ACL就是设置指定的特定用户或用户组队某个文件的操作权限。并且如果对某个目录设置了访问控制策略,那么子文件则继承其访问策略,而若对文件设置了访问控制策略则不再继承上级目录的控制策略。
有点类似于Windows系统的安全策略
主要命令:
setfacl
getfacl