一、文件权限
用户的创建的每个文件,都有自己特定的属性信息,比如文件类型,文件的权限,文件的所有者和所属组,以及文件的修改日期等属性组成。
文件的权限即是指文件本身赋予了用户什么样的权力,也就是说用户能不能打开文件,能不能修改文件这些属性都是由文件权限标记和赋予的。文件的权限一般包括读、写、执行三种权限。读也就是用户有读文件的能力,八进制表示为4;写表示用户有修改文件的能力,八进制表示为2;执行权限对目录而言是可以进入此目录,对文件而言是可执行文件,八进制表示为1;
r(readable) | w(writable) | x(eXcuable) | u(owner) | g(group) | o(other) | a(all) |
读 | 写 | 执行 | 所有者 | 所属组 | 其他人(来宾) | 所有人 |
4 | 2 | 1 |
000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
— | –x | -w- | -wx | r– | r-x | rw- | rwx |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
640:rw- r– — 7:— — rwx | 755:rwx r-x r-x 0:— — — |
文件
X:递归修改目录执行权限时,只给所有的目录x 权限,而不给文件x执行权限,但是如果文件中有任何一个人有执行权限,则文件将会全部加上执行权限
目录若只有读写权限,只能查看目录文件列表,不能访问文件和cd进目录(查看,删除),如果只有执行权限,可以cd进目录,但是不能ls列出文件列表,可以执行目录中的文件,执行是基础去权限,若知道文件名,可以直接访问目录中的文件;写权限,需配合x权限才能生效。
当用户需要访问文件时,按照匹配顺序依次匹配,如果普通用户文件的所有者和所属组其中一个有执行权限,-o没有-x权限,尽管root用户不属于该文件所有者和所有组,root用户依然可以借用-X执行权限。
u+ u- g+ g- o+ o- a+ a- + –
chmod [OPTION]… —reference=RFILE FILE…
若用户没有任何权限,则设置权限为空,赋值权限也可直接赋八进制数字
文件权限设置:
chmod u+wx,g-r,o=rx file
用户新建文件和目录时一般都会有默认的权限设置,比如root管理员用户创建文件的默认权限为644,创建目录的默认权限为755,普通用户的创建文件的默认权限为664,创建目录的权限为775,因为root是管理员用户,所以为了安全,通常都是只有文件所有者才具有写的权限。文件的默认权限是由umask掩码决定的,修改文件的umask掩码,即可修改文件创建的默认权限。
umask掩码:从777或666中,将文件对应的权限位去掉,从而得出默认权限
新建文件或目录的权限为: 666-umask或777-umask
如果所得结果某位存在执行(奇数)权限,则将其权限+1
umask值得计算方法为
文件的完整权限666或777与umask值二进制计数的每一位比较,当umask的二进制位为0时,文件的权限二进制位保留,当umask二进制位为1时,文件的权限二进制位置为0,计算之后的最终权限即为文件的默认权限。
umask: 查看umask值
umask #: 设定umask值
umask –S 模式方式显示
二、文件的三种特殊权限
进程和文件都有属主和属组,而属主和属组的判定有以下几种情况:
(1) 任何一个可执行程序文件能不能启动为进程, 取决发起者对程序文件是否拥有执行权限
可执行文件上的SUID权限
chmod u-s FILE…
可执行文件上的SGID权限
chmod g-s FILE…
目录上的SGID权限
SUID:4 | SGID:2 | STICKY:1 |
权限位映射:
三、ACL访问控制列表
ACL:Access Control List ,实现灵活的权限管理,即除了文件的所有者,所属组和其它人以外,可以对某一个单独的用户设置访问权限。
ACL权限设置的生效顺序为:所有者,自定义用户,自定义组,其他
getfacl 查看文件的acl属性
getfacl file1 | setfacl –set-file=- file2 复制file1的acl 权限给file2
对passwd文件添加danran用户rwx权限,setfacl -m u:danran:rwx passwd
ACL设置:
setfacl -x u:danran file |dir 删除danran用户的acl权限
ACL文件上的group权限是mask值(自定义用户,自定义组,拥有组的最大权限), 而非传统的组权限。
通过ACL 赋予目录默认x 权限,目录内文件也不会继承x 权限。
只能删除ACL权限,不能删除默认权限。
原创文章,作者:danran,如若转载,请注明出处:http://www.178linux.com/77211