Linux学习记录:文件权限
在这一章中学习了基本权限UGO和ACL,以及高级权限。
UGO分别代表属主属组和其他用户的权限。
读取写入和执行的权限用rwx这三个字符表示,也可以用数字表示对应的权限,相对应的是421。
1.基本权限UGO
牢记三个常用修改权限的命令:chown(主、组)、chgrp(组)、chmod(修改文件权限)。要注意chown和chmod命令的区别,前者是linux系统中用来改变某个文件属性的命令,将访问权限给予别人。后者是linux系统中用来改变某个文件的访问模式的命令,把权限打开,让所有人都可以进来。
要将某目录或文件同时修改属主或属组,只需在chown和chgrp命令后添加“—R参数”,eg:
chmod命令中对象a可代表全部身份,包括ugo。
我习惯用数字赋予权限,简单又方便,像这样:
2.基本权限ACL
与UGO的基本区别:UGO只针对一个用户、一个组与其他用户,而ACL除此之外,还可以对单一用户,单一文件或目录进行权限设置。
两个访问控制相关命令:getfacl和setfacl,前者查看ACL权限,显示出的内容和ll命令查看到的差不多;后者可以设置ACL权限,可以更精确地控制权限的分配。
“-m”命令可以修改当前文件ACL权限
让用户对文件r.txt有读写权限:
让用户对abc目录有读写权限:
取消/删除ACL权限:添加“-x参数” :
删除所有拓展ACL权限,回到UGO的基本权限:添加“-b”参数 :
3.ACL高级特性
mask用来指定最大有效权限,确保ACL规则不会违背或超越常规权限的限制,这保护了系统安全性和权限控制的一致性。mask指定的权限与用户名权限相与后才是最终的权限。
mask能临时降低用户或组(除owner和other)的权限,而不是删除所有权限。
让用户对某个目录以及其下新建的文件有读写执行权限,可以添加“d”参数: defaul(继承) :
4.高级权限
SUID权限:一种高级权限,任何用户在执行该文件时,其身份是该文件的属主,在进程文件上增加SUID权限,让本来没有相应权限的用户也可以访问没有权限访问的资源。
chmod u+s /usr/bin/cat
SGID权限:在一个程序上添加SGID,用户在执行过程中会获得该程序用户组的权限(Group+s权限)
Sticky权限:赋予这个权限之后,仅有自己与root用户才有权删除,其他用户操作不了。
chattr命令:为了保护系统文件,这个命令可以改变文件的隐藏属性
(使用man工具可以查看命令的使用方法)
给文件添加“a”属性,不能再使用Vim编辑器写入文本,需要使用echo命令追加的方式写入。eg:
给文件增加“i”属性:该文件不接受任何形式的修改,只能读取。(不可写入文本内容,不可删除)
进程掩码umask:这是一个掩码,用于限制新创建的文件和目录的默认权限。它会从默认的文件权限中减去一些权限,以确保文件不会具有过于开放的权限。
这一章中把所有的都梳理了一遍,对高级权限中的SUID、SGID权限不是特别的理解,对umask进程掩码的具体如何减权限的也不是特别了解,希望在以后的学习中去解决这些疑惑。