您的位置:首页 > 运维架构 > Linux

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

2017-02-20 22:34 591 查看
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 
文件名
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息