一、权限的查看和读取
1.权限的查看:
ls -l 文件 (查看文件权限)
ls -ld 目录 (查看目录权限)
2.文件权限的种类:
文件的属性被叫做文件的元数据(meta data),一种元数据用1个byte来记录内容

(1)文件的类型:
#文件类型
#- 普通文件
#d 目录
#l 软连接
#b 快设备
#c 字符设备
#s socket套接字
#p 管道 |
(2)文件权限说明:
##用户权限
##rw-|r--|r--
# u g o
(3)文件安全上下文标记:
##系统的selinux开启,那么在此位会出现“.”
(4)文件副本标记或目录中子目录标记:
##对于文件:文件内容被系统记录的次数(硬链接个数)
##对于目录:目录中子目录的个数
(5-6)文件的归属:
##文件拥有者
##文件拥有组
(7)文件容量统计:
##对于文件:文件内容大小
##对于目录:目录中子文件的元数据大小
(8)文件时间戳:
##文件内容被修改的时间
(9)文件名称:
文件名称中一个英文字符占用一个字节,一个中文字符占用三个字节
3.用户对于文件的身份识别及设定:
(1)用户对文件的身份:
u: #user 文件的拥有者,ls -l 看到的第五列信息
g: #group 文件拥有组, ls -l 看到的第六列信息
o: #other 既不是拥有者也不是拥有组成员的其他用户的通称
(2)权限位:
rwx | r-- | r--
u g o
(3)文件用户用户组管理:
chown username file ##更改文件拥有者
chgrp groupname file ##更改文件拥有组
chown username:groupname file ##同时更改文件的拥有者和拥有组
chown|chgrp
-R user|group dir ##更改目录本身及目录中内容的拥有者或者拥有组
4.设定普通权限的方法:
(1)#chmod 字符方式设定权限
chmod <a|u|g|o><+|-|=><r|w|x> file ##用字副方式设定文件权限
(2)#chmod 数字方式设定权限#
权限波尔指表示方式
rwx = 111
--- = 000
三位二进制可以表示的最大范围为8进至数
rwx=111=7
rw-=110=6
r-x=101=5
r--=100=4=r
-wx=011=3
-w-=010=2=w
--x=001=1=x
---=000=0

(3)#chmod 复制权限#
chmod --reference=/tmp /mnt/lee #复制/tmp目录的权限到/mnt/lee上
chmod -R --reference=/tmp /mnt/westosdir #复制/tmp目录的权限到/mnt/westosdir及
#目录中的子文件上 -R 代表第归操作
5.系统默认权限设定:
系统本身存在的意义共享资源
从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高
既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放把不安全的权力默认保留
(1)如何保留权力

6.系统中的特殊权限
(1)SUID(Set UID)
当一个设置了
SUID
权限的程序被执行时,内核会将进程的有效用户
ID
(
Effective User ID
)临时设置为
文件所有者的用户
ID
,而实际用户
ID
(
Real User ID
)保持不变。这样,在程序执行期间,该进程就具
有了文件所有者的权限。

(2)SGID(Set GID)
对于可执行文件,当设置了
SGID
权限的程序被执行时,进程的有效组
ID
(
Effective Group ID
)会临时
被设置为文件所属组的组
ID
。对于目录,设置了
SGID
权限后,在该目录下创建的新文件和子目录将自
动继承该目录的组,而不是创建者的默认组。

(3)Sticky Bit
Sticky Bit
权限通过在目录权限上设置一个特殊标志来实现上述功能。它限制了用户对目录中文件的删除
和重命名操作,只有满足特定条件的用户才能执行这些操作

二、ACL权限列表
ACL
(
Access Control Lists
,访问控制列表)是一种灵活的权限管理机制,用于在
Linux
系统中对文件
和目录设置更细致的权限。传统的
Linux
文件权限模型基于所有者(
owner
)、所属组(
group
)和其他
用户(
others
)进行权限分配,分别对应读(
r
)、写(
w
)、执行(
x
)权限。然而,这种模型在一些复
杂的场景下显得不够灵活。例如,当需要给特定用户或组超出传统权限模型的权限时,
ACL
就派上了用
场。通过
ACL
,可以针对单个用户或组设置独立的读、写、执行权限,从而实现更精细的访问控制。
1.ACL权限列表的读取
(1)ACL权限开启标识
(2)ACL列表权限读取
2.acl列表的控制
setfacl -m u:lee:rw leefile #设定
setfacl -m g:westos:rw leefile
setfacl -m u::rwx leefile
setfacl -m g::0 leefile
setfacl -x u:lee leefile ##删除列表中的lee
setfacl -b leefile #关闭
3.acl 权限优先级
拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他
4.mask阈值
mask
是能够赋予指定用户权限的最大阀值
当设定完毕文件的
acl
列表之后用
chmod
缩小了文件拥有组的权力
mask
会发生变化
恢复:
setfacl
-m
m:
权限 文件
5.acl 列表的默认权限
设置默认
ACL
。仅对目录有效,当在该目录下创建新文件或子目录时,新创建的对象将继承该目录的默
认
ACL
规则。
setfacl -m u:lee:rwx /mnt/westosdir ##只对于/mnt/westosdir目录本身生效
setfacl -Rm u:lee:rwx /mnt/westosdir ##对于/mnt/westosdir目录和目录中已经存在
的内容生效
#以上的命令之针对与存在的文件生效,新建文件是 不会被设定的
setfacl -m d:u:lee:rwx /mnt/westosdir/ ##针对与/mnt/westosdir目录中新建文件生效
三、attr权限
attr
权限,即文件属性权限,是
Linux
系统中一种对文件或目录赋予额外属性的机制。它能进一步增强
对文件访问和操作的控制,提供了比传统
r
(读)、
w
(写)、
x
(执行)权限更细致的管控维度。这些
属性可以限制文件的某些操作,如防止文件被删除、修改,或者使其只能追加写入等
#attr权限限制所有用户
i #不能作任何的更改
a #能添加不能删除
lsattr dir|file ##查看attr权限
chattr +i|+a|-i|-a dir|file ##设定attr权限