天天看点

linux基础命令之文件权限的管理及ACL的扩展

Linux文件权限的管理

文件:

查看文件权限 #ll 文件名

显示:- rwx r-x r-x root root filename

从左往右依次表示(以空格作为分隔):

1.     类型,-表示文件,d表示目录

2.     拥有者权限 eg:root

3.     所属组权限 eg:root

4.     其他人权限 eg:普通用户

5.     拥有者

6.     属组

7.     文件名

其中r表示read,可读,可以查看,不能更改删除;w表示write,可写,可插入修改,x表示可执行,一般指的是脚本文件

目录

r表示可读,即可以看到目录里的内容 #ls

w表示可写,建文件,删除,移动等操作 #touch mkdir rm  mv  cp等

x表示可进入

用数字表示权限的表示方法

                                                          二进制  

0.     代表无权限                               

1.     x可执行                                    1   001     --x

2.     w可写                                      2   010     -w-

3.     wx可执行可写                          3   011     -wx

4.     r可读                                        4    100     r--

5.     r+x可读可执行                         5    101     r-x

6.     r+w可读可写                            6    110     rw-

7.     rwx可读可写可执行                  7    111     rwx

eg:#chmod 622文件名

修改文件权限的相关命令

#chmod 【参数】

-a 表示所有者的权限

-u 表示拥有组的权限user

-g 表示组的权限group

-o 表示其他人other

可以使用运算符来设置权限-+=

Eg: #chmod u-wa.txt

       #chmod g+x a.txt

       #chmod o=r a.txt

       #chmod a+x a.txt

查看目录权限#ll –d目录

一次性修改多个权限 eg:#chmod u=rwx

修改文件的所属主组

语法   #chown  user:group 文件名

Eg:

1.同时修改属主和属组   #chown a:b c.txt

2,修改属主                 #chown  daemon c.txt

3.修改属组                   #chown  :bin   c.txt

-R表示递归,即目录下所有的内容全部更改,否则只修改目录

Eg:#chmod u-w cpu/ -R

一个文件只有读的权限,拥有者是可以写这个文件的,可以正常写入,但是保存时用:wq!

在linux系统创建之初,为了安全起见,任何用户所创建文件的都没有可执行的权限x,文件的权限为777-111=666,然而实际的权限为644,这是因为有权限补码的存在

设置文件默认权限的补码umask,umask,拿走的意思,就好比文件的权限是666,umask=022,剩下的就是文件的权限644了

权限是0000,0的位置代表

第一个0 代表文件的特殊权限

第二个0 代表文件所有者

第三个0 代表所有组

第四个0 代表 其他人

查看当前umask      #umask

一般默认,文件的权限是644,目录的权限是755

如何去计算文件的权限:文件默认的权限是权限 与 umask的取反做“与”运算

查看文件的路径 #which 文件名

特殊权限

SUID (用户)——限定:智能设置在二进制可执行程序上面,对目录文本设置无效

              ——功能:程序运行时的权限从执行者变更成程序的拥有者

转换身份eg:把普通用户转换成root身份

                    #chmodas /bin/less

SGID (组)——限定:既可以给二进制可执行程序设置,也可以给目录设置

——功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的所属组

Eg:#chmod g+s目录/

Stickbit 粘滞位 ——限定:只作用于目录

                      ——功能:目录下创建的文件只有root,文件创建者,目录所有者才能删除,保证文件只有本人才能删除

             Eg:#chmod  1777目录/

ACL的使用

ACL,Access Control List,ACL可以针对单个用户,单个文件或目录来进行rwx的权限设定,特别适用于需要特殊权限的使用情况

查看是否支持ACL  #dumpe2fs /dev/sda1 | grep acl

如果不支持,则挂载acl #mount –o remount,acl /dev/sda1

文件:

查看文件属性  #getfacl  文件名

设置acl       #setfacl  -m u:用户:rw   文件名

目录:

设置acl,其中-R一定要在-m之前,表示目录下所有的文件

#setfacl -R –m u:用户:rw 目录

删除ACL

#setfacl -x u:用户 文件名      删除某用户

删除所有用户的acl权限   #setfacl  -b 文件名

创建一个root都无法删除的文件

Linux文件系统扩展属性:chattr lsattr

选项说明:+a 只能追加内容

              +i  不能被修改

Eg:#chattr +a 文件名

        #chattr +i  文件名