系统相关
首页 > 系统相关> > Linux 文件权限总结

Linux 文件权限总结

作者:互联网

 

  【以上参数详细解释】

  —                 — — —        — — —        — — —     .    1                     所属者 所属组 大小 时间 文件名

  文件类型     所属者权限   所属组权限    其它权限   .     硬连接数        所属者 所属组 大小 时间 文件名

  (文件类型:- 普通文件 d 目录文件 b 块设备 c 字符设备 | 符号链接文件 p 管道文件pipe s 套接字文件socket)

 

  1、Linux的文件和目录的权限,只有rwx三种:
  r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
  w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。
  x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
    1、目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。
    2、只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
    3、一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外
    4、目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件

  

  2、文件所有分为:u(user所属者)、g(group所属组)、o(other其它)、a(all所有)=u+g+o
  (模式法)权限分为:r(读)       w(写)       r(执行)
  (数字法)权限分为:4(读)      2(写)       1(执行)
  (二进制)权限分为:100(读)  010(写)   001(执行)

   

  3、优先级

    一般情况:所属者>所属组>其它   (3个权限只有一个有效,判断一个权限满足后不会再判断后面的权限)

    ACL情况:所属者>ACL权限.用户>所属组>ACL权限.组>其它 (只要满足一个就不会往下判断)

  4、文件和目录的读写执行权限的区别:

    目录的读权限:可以列出文件名,但无法查看文件内容。
    目录的写权限:创建和删除文件。创建和删除由目录的权限决定,与文件权限无关
    目录的执行权限:可以进入目录,访问目录的文件内容。没有执行权限基本上是对这个目录没有访问权限

  5、特殊权限

    5.1 SUID:—  — — s   — — —  — — —  .  1  所属者 所属组 大小 时间 文件名 

       运行shell命令(二进制程序,如:passwd)时,普通用户临时转变身份继承程序所属者权限

      s=S+x。单独只有 SUID 权限时显示为大写S,s要配合x使用。

      SUID一般不用自己修改(慎改),由系统默认。
      数字法:4700,单独算是数字4 如:chmod 4700 /etc/passwd或chmod u+s /etc/passwd

      

 

    5.2 SGID:—  — — —   — — s  — — —  .  1  所属者 所属组 大小 时间 文件名 

      5.2.1 运行shell命令(二进制程序)时,普通用户临时转变身份继承程序所属组权限
          属于该用户组的所有用户都继承s权限
          s=S+x。单独只有 SGID 权限时显示为大写S,s要配合x使用。
          SGID一般不用自己修改(慎改),由系统默认。
          数字法:2755,单独算是数字2 如:chmod 2755 /bin/cat或chmod g+s /bin/cat
      5.2.2 作用于目录
          多个用户同时对一个目录所有文件(不同用户的文件)读写执行
          chmod g+s 目录名 :目录下的新创建的所有文件都会继承目录的所属组
          chmod 2770 目录名 :目录下的新创建的所有文件都会继承目录的所属组

   5.3 STID:—  — — —   — — —  — — t  .  1  所属者 所属组 大小 时间 文件名 

     作用于目录,粘滞位:目录里的文件要修改和删除,必须所属者才能删除。root除外

     目录下所有文件都继承t权限

     t=T+x。单独只有 Sticky 权限时显示为大写T,t要配合x使用。
     Sticky一般不用自己修改(慎改),由系统默认。
     数字法:1777,单独算是数字1 如:chmod 1777 /root/test或chmod o+t /root/test

  6、针对root的特殊权限(一般的root有最高文件权限,常用的权限无法限制root)

    6.1 chattr +i 文件(目录): 限制任何账号(包括root)对文件和目录读写执行     

    

 

    6.2 chattr +a 文件(目录): 只允许对文件追加内容     

    6.3 lsattr 文件(目录):显示文件特定属性

  7、umask 功能:将777|666中对应的权限去掉(掩藏),得出默认权限      (mask:掩码)

    

 

    创建文件的权限是666-umask=644(rw_ r__ r__)   相减后有奇数位需要加一 ,偶数不变  (理解:掩)

    

 

 

   

    创建目录的权限是777-umask=755(rwx r_x r_x) 直接减适用于目录

  8、ACL访问控制列表。access control list :实现灵活的权限管理  (一般情况如:临时给test用户读写执行权限,时间到回收。在windows等操作系统上也有ACL的用法)

    8.1 setfacl -m u:test:w b.txt   为用户test添加b.txt的写权限,设置ACL有+标识   (  —  — — —   — — —  — — — + .  1  所属者 所属组 大小 时间 文件名 )

    

 

 

     setfacl -m g:admin:w b.txt 为用户组 admin 添加b.txt的写权限

     

 

    注意:acl没有 o(other 其它)权限的设置

     8.2 setfacl -b  1.txt :删除(回收)1.txt的所有acl权限

    

 

     8.3 ACL中的mask:限制ACL中的成员,不允许超过mask的权限(mask为上限)

      setfacl -m mask:rw b.txt  设置b.txx的acl中mask为rw 

        setfacl -m u:test:rwx b.txt  设置用户test对b.txt的acl权限为rwx (实验:先设置 mask 在设置 test 权限,mask 不响应)

      setfacl -m mask:rw b.txt  设置b.txx的acl中mask为rw (mask 最后设置,才会对 test 权限生效)

      

 

 

       【小技巧】:同时有多个文件需要设置一样的权限。第一步设置好 B文件 的 acl,第二步备份 C文件 的 acl,第三步设置 C文件 --set-file= b.txt.acl c.txt

      ACL 备份:getfacl -R b.txt > b.txt.acl

      ACL 恢复:setfacl -R --set-file= b.txt.acl c.txt

      

 

 

       

 

标签:总结,文件,txt,mask,Linux,权限,所属,目录
来源: https://www.cnblogs.com/leihongnu/p/12837307.html