zoukankan      html  css  js  c++  java
  • 文件权限:普通(r、w、x)和特殊(s、t) (转)


    linux中,常常涉及到权限的问题。文件的权限有3组,owner,group,other,每一组都有rwx三种设置。r(4):可读;w(2):可写;x(1):可执行。

    我们在执行shell命令ls -l时,就会显示出文件的所有信息,第一组就是文件属性中的高级属性,权限。这一组总共有10格,每一格是一个bit。  
     
    第一个是特殊位:
      
       d表示目录;
       l表示连接文件;
       -表示文件;
       b表示为装置(device)文件中可供存储的接口设备;
       c表示为装置文件中的串行端口设备(如键盘,鼠标);
       s表示该文件是存放socket信息的,一般是给 process 之前用来进行 network socket 存取沟通使用的档案;
       p表示数据输送文件(FIFO,pipe),它的主要目的是为了解决多个程序同时存取一个文件时所造成的错误。
       以后的9个格子按照之前所说的3个组依次分配,给每个组设置读,写,执行权限。
       
    在这里要注意:如果你想开放一个目录,一定要确定X即可执行权限已经赋予了该用户或群,否则是不可以读写的,也就是说,你给的r,w是没意

    义的。



       
    文件权限的修改: chmod:改变档案的属性、SUID等特性
    用法:
         chmod [-R] 777 dir/filename (注:7=r+w+x;6=r+w;5=r+x;3=w+x)
         chmod [-R] a+rwx dir/filename 
         chmod [-R] u-r dir/filename
         chmod [-R] u=rwx,go=rx dir/filename (注:a:所有用户和组;u:所有者;g:组;o:其他。+:添加权限;-删除权限;=赋予权限)
         chgrp:改变档案的所属群组
         用法:chgrp [-R] group dir/filename
         chown:改变档案所属人  用法:chown [-R] user dir/filename;
         顺便还可以改变群组  chown [-R] user:group dir/filename

    除了这些一般权限外,我们还可以设置高级权限,也可以说是特殊权限:

    SUID/SGID/Sticky Bit (档案特殊权限): 

    SUID (Set UID): 会制作出 s 的权限,权限数字是 4 。这个权限只能作用于可执行文件,不可作用于目录,shell script也不行。使一般使用者在执行文件时,暂时具有该文件拥有者的权限。

    SGID (Set GID): 制作出 s 权限,权限数字是 2 。这个权限可以作用于目录和文件。作用于目录时,在该目录下建立的所有文件和目录的group都会是该目录的group;作用于文件时,则不论使用者是谁,在执行该程序的时候, 他的有效群组 (effective group) 将会变成该程序的群组所有人 (group id)。

    Sticky Bit: 制作出 t 权限,权限数字是 1 。在该权限作用的目录里,如果使用者具有w,x权限,那么他所创建的文件和目录,只有档案的拥有者和root才能删除。







    注意:在字符表示权限时,s和t是出现在x的位置的,意思是在可执行的文件和目录时,它们才是有意义的。如果文件或目录本身u、g或o就没有可

    执行权限,那么它所在的权限组出现的是S或者T,表示空的意思。

    来源: <http://blog.chinaunix.net/uid-20864319-id-448817.html>
     




  • 相关阅读:
    mysql报错解决
    数据存储
    记录python接口自动化测试--把操作excel文件的方法封装起来(第五目)
    基础补充:使用xlrd模块读取excel文件
    记录python接口自动化测试--利用unittest生成测试报告(第四目)
    记录python接口自动化测试--pycharm执行测试用例时需要使用的姿势(解决if __name__ == "__main__":里面的程序不生效的问题)(第三目)
    记录python接口自动化测试--unittest框架基本应用(第二目)
    记录python接口自动化测试--requests使用和基本方法封装(第一目)
    连接数据后,当执行查询语句报错:ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询
    通过运行一个tomcat容器来记录下初学docker常用的几个命令---容器篇
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4562510.html
Copyright © 2011-2022 走看看