码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-08-05 01:13:55      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:文件权限   acl   umask   权限管理   

                文件权限管理

  文件属性格式             


技术分享

文件属性操作

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) (到指定的文件目录)












本文出自 “小马哥Linux系统运维” 博客,转载请与作者联系!

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

标签:文件权限   acl   umask   权限管理   

原文地址:http://xiaomag.blog.51cto.com/11842517/1834513

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!