1 基本权限UGO
U:owner,属主
G:group,属组
O:other,其他用户
用户对文件的权限还取决于文件的属性,即文件赋予角色什么权限。结合两者才能得知一个用户对于一个文件的权限。
2 文件属性
使用 ll 即可查看文件属性
第一个字符为文件类型,在Linux中,文件有如下几种类型:
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
2~4、5~7、8~10个字符分别为文件所有者、属组、其他用户的权限
具体含义为:
r:读取,数字设定为4(数字依据二进制而来,如rw-,为110,转化为八进制则为6(4+2)
w:写入,数字设定为2
x:执行,数字设定为1
3 设置文件属性与权限
chown:修改文件属主、属组
如:chown 属主 文件名
chown 属主.属组 文件名(中间用“.”或“。”隔开)
chgrp:修改文件属组
如:chgrp 属组 文件名
chmod:修改文件权限
chmod可以对u、g、o对象使用赋值符+、-、=进行赋值,对应值有r、w、x
如:chmod o+w 文件名
也可以使用数字 :chmod 776 文件名
4 基本权限ACL
UGO权限只针对一个用户、一个组与其他用户,使用上有局限性,ACL (Access Control List)主要提供传统的UGO的r、w、权限之外的具体权限设置,可以对单一用户、单一文件或目录进权限设置。
ACL基本用法
setfacl:设置文件
setfacl [-bkRd] [{-m|-x} acl参数] 文件/目录名
参数:
-m :配置后面的 acl 参数给文件使用,不可与 -x 合用
-x :删除后续的 acl 参数,不可与 -m 合用
-b :移除所有的 ACL 配置参数
-k :移除默认的 ACL 参数
-R :递归配置 acl
-d :配置“默认 acl 参数”,只对目录有效,在该目录新建的数据会引用此默认值
如:给用户test增加对文件file权限“rw”
getfacl:查看文件acl权限
getfacl 文件名
如:
最大有效权限mask
可以使用它来临时降低用户或组(除owner和other)的权限
设置:
作用:对文件file设置mask后,用户权限与其“相与”后才是真正的权限,例如上面设置mask权限为“r--”后,group原本权限是“rw-”,但实际权限却成了“r--”
继承
要想让某一个目录继承上一个目录的权限,可以使用“-d”参数
如:
5 高级权限
SUID权限
使用ll命令查看文件file,第一行第四个字符为“S”,表示特殊SUID权限
任何用户在执行该文件时,其身份是该文件的属主,在进程文件(二进制,可执行)上增加 SUID权限,让本来没有相应权限的用户也可以访问没有权限访问的资源。
设置SUID权限:例如:“chmod u+s file”。
Sticky权限
添加Sticky后,当用户对目录具有 w、x权限,在该目录下建立的文件或目录,仅有自己与root才有权删除。
6 文件属性 chattr
为了保护系统文件,Linux 系统会使用 chattr 命令改变文件的隐藏属性。chattr 命令仅对EXT2/EXT3/EXT4 文件系统完整有效,其他文件系统可能仅支持部分隐藏属性或者根本不支持隐藏属性。
例如:给文件添加“a“属性后,不能使用Vim编辑器写入,需要使用echo命令追加的方式写入
增加”i“属性后不能接受任何形式的修改,只能读取
7 进程掩码 umask
当用户创建新目录或文件时,系统会赋予目录或文件一个默认的权限,umask的作用就是指定权限默认值。为系统设置一个合理的 umask 值,确保创建的文件或目录具有所希望的缺省权限,有科全部于保证数据安全。
umask 值表示要减掉的权限,也可以简单地理解为权限的“反码”,进程和新建文件、目录的默认权限都会受到 umask 的影响。
标签:文件,用户,acl,Linux,权限,属组,目录 From: https://www.cnblogs.com/Lc-1/p/17857574.html