关于文件权限管理了解和使用

                文件权限管理

  文件属性格式             

关于文件权限管理了解和使用

文件属性操作

chown          设置文件的所有者

chgrp          设置文件的属组信息

 修改文件的属主:

chown [选项] [所有者][:[组]] file

         

命令中的冒号可用.替换;

-R :递归操作文件或目录

chown [选项] –reference=RFLE FILE

       -rw-r–r–. 1 root root    0 8月   3 18:17 xiaomage   这是没更改属主时候的文件 

例如:~]# chown -R makangbo xiaomage  

(命令加选项-R 将原来的属主root 修改为makangbo属主 后面跟文件名称)

       -rw-r–r–. 1 makangbo root    0 8月   3 18:17 xiaomage   这是更改成功的结果

       

 修改文件的属组

chgrp [选项] group file

chgrp [选项] –reference=RFILE FILE 

-R : 递归操作文件或目录

      -rw-r–r–. 1 makangbo root    0 8月   3 18:17 xiaomage   

      (这个是上面改过属主的, 然后组还没改)

  

例如:~]# chgrp -R makangbo xiaomage  

(命令选项-R makangbo组名  xiaomge文件)

       -rw-r–r–. 1 makangbo xiaomage    0 8月   3 18:17 xiaomag   

       (这个就是更改过组的,将原来的root组更改为makangbo组)

            

文件权限的主要对三类对象进行定义

owner: 属组,u

group: 属组,g

other: 其他,o

每个文件针对每类访问者都定义了三种权限

r:  readable  可读的 

w:  writable  可写的

x:  excutable 可执行的针对二进制程序或脚本 

文件的权限

r:可使用文件查看类工具获取里面内容

w:可修改文件里面的内容

x:可以把此文件提交给内核启动为一个进程操作,对二进制程序或脚本有效

目录的权限

r:可以查看dir内文件列表,但不能访问文件,不能cd,也不能查看文件的元数据

w:可以在dir中创建文件,,也可以删除此dir中的文件

x:可以使用查看类命令查看dir中的列表,可以cd进入此dir

X:只给目录x权限,不给文件x权限 (前提是本身没有x权限)

关于文件权限管理了解和使用

文件权限,示意图

权选项    文件类型    读    写    执行    读     写    执行   读   写   执行

字符表示(d|l|c|s|p)(r)  (w)    (x)    (r)    (w)   (x)    (r)  (w)  (x)          

数字表示               4     2      1      4      2     1      4    2     1

权限分配             (  文件所有者  )   文件所属组用户)    ( 其他用户 )      

关于文件权限管理了解和使用

八进制数字

— 000 0

–x 001 1

-w- 010 2

-wx 011 3

r– 100 4

r-x 101 5

rw- 110 6      例如

rwx-111 7      640 ; rw-r—–   (其中rw-是6  r–是4   —是0 )

               755;  rwxr-xr-x   (其中rwx是7  r-x是5 r-x=5)    

                

                                                        

      umask值,可以用来保留在创建文件权限                                        

umask 666 文件

umask 777 目录

dir: 777-umask  目录的最大

file:666-umask  文件的最大 ;有奇数加1,偶数保留

非特权用户是002

root的umask是022

umask  查看结果

umask [权限掩码]  设定

umask -S 新建文件直接模式显示

umask -p 输出可被调用

全局设置 : /etc/bashrc 

用户设置:~/.bashrc

   修改文件权限

chmod [选项] 八进制数字的方式 文件

-R递归修改权限

修改一类用户的所有权限

u=权限      UID=什么权限

g=权限

o=权限     不是管理员的用户=权限

ug=权限     UID和GID=权限

a=ugo

修改一类用户某位或某些位权限

u+   

u-

g+

g-

o+

o-

a+

a-

+  增加权限

–  减去权限

特殊权限

suid

sgid

sticky

进程有属主和属组;文件有属主和属组

》任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限

》启动为进程后,其进程的属主为发起者;进程的属组为发起者所属的组

可执行文件上suid权限

启动为进程之后,其进程的属主为原文件的属主

chmod u+s file     增加文件权限 。

      相对应普通用户的权限,s相当于继承root的权限,进行某些操作 (只有二进制程序才有意义)

chmod u-s file     减去文件权限 。  suid设置在目录上无意义

可执行文件上sgid权限

启动进程之后,其进程的属主为源程序文件的属组

chmod g+s  file   相对应组的GID  权限   (作用二进制程序)

chmod g-s  file   

目录上的sgid权限

如果作用在目录上将使该目录中新建文件或目录将自动继承该目录所属组

通常用户创建一个协作目录

chmod g+ dir

chmod g- dir

sticky具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

在目录上设置sticky,只有文件的所有者或者root可以删除该文件

对文件无效

chmod o-t dir

chmod o-t dir

例如 ~]# ls -ld /tmp

        rwxrwxrwt. 13 root root 4096 8月   4 08:40 /tmp    加了t权限的

suid;sgid都占据属主的执行权限位

s代表UID拥有x权限,S表带UID没有x权限

     GID                GID

t占据其他的执行权限位

不管是suid和sgid还有sticky三个都要配合x权限

设定文件特定属性

chattr +i   不能删除,改名,更改

chattr +a   只能增加

lsattr  显示特定属性

关于ACL : Access Control List 实现灵活的权限管理

除了文件的所有着,所属组和其他人,可以对更多的用户设置权限

ACL生效顺序:所属主,自定义ACL属主,所属组,自定义ACL组 ,其他用户

 setfacl -m u:xiaommage:0(rwx) file

(命令选项) (用户名称 )(给定权限) 文件)

 setfacl -x u:xiaoamge file

(命令选项)(用户名名称)(文件)

 getfacl file

 (查看文件给定的用户权限)

 不仅可以设定用户权限   也可以g组设定权限

 setfacl -m u:xiaomage:rwx file

(命令选项 uid用户名:权限:文件)

 setfacl -m g:xiaomage:rwx file

(命令选项 gid用户名:权限:文件)

 setfacl -m d:u:xiaomage:rwx file 

 (  加了d选项,就是指以后在文件夹中创建的文件都带有该权限    )

 setfacl -k dir   删除默认ACL权限

 

getfacl file1 | setfacl –set-file=-  file2

  复制file1的ACL权限给file2 

]# getfacl f1 | setfacl –set-file=- f2

 (命令)(file)(管道传给命令=f1 到f2)

从file1文件中保存到file2文件中,保留了ACL权限

 setfacl -b file

(命令选项清空文件内所有ACL权限)

 批量加权限

vim file.txt

u:xiaomage:0

u:xiaomage:rwx

g:xiaoamge:rx

g:xiaomage:0

setfacl -M file.txt (调用文档内容并执行)

 批量删权限

vim file2.txt

u:xiaomage:0

u:xiaomage:rwx

g:xiaoamge:0

g:xiaomage:rwx

setfacl -X file.txt(调用文档内容并执行)

ACL文件上的group权限是mask值 自定义用户或者组,拥有组的最大权限,而不是传统的组权限

  一旦设置ACL权限后,权限已经变成mask的权限

mask的权限相当于高压线   其他用户只能比他小,或者相等。

用户或组的设置必须存在与mask权限设定的方位内才会生效

格式:setfacl -m mask::rx file

备份和恢复ACL

主要文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p参数。

但是tar等常见的备份工具是不会保留目录和文件的ACL信息

 cp -a file dirfile

 cp -p file dirfile

getfacl -R /tmp/dir1 > acl.txt

(命令加选项)(指定某个目录路径)(重定向到文本文档中)

getfacl -R * > /dir1/file.txt

(在当前目录下将所有的ACL重定向到某个目录中并定义名称)

setfacl -R -b /tmp/dir1

(命令加选项)-b清空目录中的ACL

setfacl -R –set-file=cal.txt /tmp/dir1 file.txt*

(命令加选项) (命令=读取文档恢复ACL) (到指定的文件目录)

原创文章,作者:小马哥,如若转载,请注明出处:http://www.178linux.com/28963

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-07 23:51

    文章整体结构层次清晰,对命令的总结很详细,但是少了一些具体实践,在以后的写作中可以加上自己的实际操作部分。