文件的从属权限和特殊权限

基础权限

  rwx

    经过今天的洗礼,了解了文件的权限位(rwx),而权限对于目录和文件有着不同的意义

    使用ls -l 命令后可以看到

    -rw-r–r–. 1 root root 10033 8月   2 03:44 install.log.syslog

    横线部分是十个位置,-代表文件类型,剩余九位,每三位为一组,从左到右分别是文件的属主

    (u)rwx,文件的属组(g)rwx,其他用户(o)rwx,

    rwx:读,写,执行

    rwx对文件

    r,如果一个用户对一个文件拥有“读”权限后,代表此用户可以浏览这个文件的内容

    w,如果一个用户对一个文件拥有“写”权限后,代表此用户可以修改和删除这个文件的内容,但是不能删除这个文件本身

    x,如果一个用户对一个文件拥有“执行”权限后,代表此用户可以运行此文件(这个相当危险的,不建议随便给用户x权限)

    rwx对目录

    r,如果一个用户对一个目录拥有“读”权限后,代表此用户可以浏览这个目录中的文件列表

    w,也不可以修改这个目录中的文件内容

    x,如果一个用户对一个目录拥有“写”权限后,代表此用户可以在这个目录中创建新的文件与目录;删除已经存在的文件与目录(不论该文

    件的权限为何!)将已存在的文件或目录进行更名;搬移该目录内的文件、目录位置。对目录来讲不建议随便给一个用户用于w的权限

    如果一个用户对一个目录拥有“执行”权限后,代表此用户可以进入这个目录中,并且在拥有读,写权限的情况下可以浏览目录中的文件列

    表,也可以在目录中创建新文件,如果一个用户对一个目录没有执行权限的话,那么这个用户就无法cd进此目录,而且也无法执行读,写,

    即使是在对此目录拥有读写权限的情况下也罢,对目录来讲建议给用户x权限

   

  相关操作命令:

    赋权

    chmod u=rwx,g=rw,o=x file

    授权

    chmod u+rwx,g+rwx,o+rwx file

    八进制

     每个权限组的r=4,每个权限组的w=2,每个权限组的x=1

    chmod 660 file

默认权限

 umask

    umask是新建文件的默认权限,

   umask

    对文件来将666-umask(默认002)=文件的权限(普通用户),666-umask(默认022)=文件的权限(管理员)

    对目录来讲777-umask(默认002)=目录的权限(普通用户),777-umask(默认022)=目录的权限(管理员)

    相关操作命令

    直接键入 umask 可以查看umask值    

    umask -S 模式方式显示

    [root@ali ~]# umask -S

    u=rwx,g=rx,o=rx

    umask -p 输出,可被调用

    [root@ali ~]# umask -p

    umask 0022

    修改方法

    umask 数值(八进制)

    umask u=rw,g=r,o=

    全局设置:/etc/bashrc,用户设置:~/.bashrc

    如果所得结果某位存在执行权限(奇数),则将其权限加1

三种特殊权限

    

  SUID

    每个程序运行成进程时,这个进程以发起者身份运行,就是发起这个进程的用户,而不是这个程序的属主,应用在文件上,如果一个程序拥

    有了suid权限,那么每个用户运行此程序时都是以这个文件的属主的身份运行的但是如果这个程序拥有SUID特权的时候,这个进程运行的身

    份就不是发起这个进程的用户了,而是这个程序文件的属主。

   相关命令:

     chmod u+s file 增加suid

    chmod u-s file 撤销suid

    占位在属主的x权限位,如果属主原来没有x权限则表现为大写S

  SGID

    用在目录的属组权限上,如果此目录拥有SGID权限之后,用户在此目录下新创建的文件的属组将会是这个目录的属组,而不是创建这个文件

    的用户的私有组,如果一个目录拥有了sgid权限,那么每一个用户进入到此目录创建文件的属组会是这个目录的属组,而不是创建文件的用

    户的属组组

   相关命令:

    chmod g+s file 增加sgid

    chmod g-s  file 撤销sgid

    占位在属组的x权限位,如果属组原来没有x权限则表现为大写S

  STICKY

    也用在目录上,如果此目录拥有STICKY权限的话,用户在此目录只能删除自己创建(自己为属主)的文件,而不能删除其他用户创建的文

    件,即便是用户对此目录有写的权限也不行。

   相关命令:

    chmod o+t dir 增加sticky

    chmod o-t  dir 撤销sticky

    占位在其他用户的x权限位,如果其他用户原来没有x权限则表现为大写T

    特殊权限的数字赋权法

    chmod 4777 ,可以把每一个特殊权限位再看成rwx(及suid,sgid,sticky),操作在原有的传统数字权限位前

    

mask和facl

    mask是创建文件后修改文件的权限的高压线,所有通过facl修改的文件的权限除了文件所有者和other以外,所有人都不能超过mask的权限

  facl :访问控制列表

    如果文件的属主,属组,其他权限设置不能满足你,假如你只想针对某一个或者多个用户设定文件权限的话,facl可以满足你,当一旦设置

    facl权限后 属组的权限将会变成mask的权限,但是mask不会给用户添加原来没有的权限(当文件的属主的权限是读,写,而mask的权限是

    读,写,执行,这种情况下mask不会给用户添加执行权限的)

   facl相关操作命令

    facl

    getfacl file 查看文件的facl列表

    赋权给用户

    setfacl -m u:username:mode file

    setfacl -M acl.txt file(批量添加)

    赋权给组

    setfacl -m g:groupname:mode file

    撤销赋权

    setfacl -x u:username file

    setfacl -x g:groupname file

    setfacl -X acl.txt file(批量删除)

     setacl  -b file 彻底清空所有facl信息

    占位在其他用户的x权限后,以+号表示

    facl生效顺序:所有者,自定义用户,自定义组,其他人

    facl的备份和恢复命令

    先使用getfacl -R file|dir读去列表然后>重定向保存到文件a.txt

    然后setfacl -k 删除原文件facl列表

    再然后setfacl -R –set-file=a.txt读会facl列表,完整命令示例如下

    [root@ali /]# getfacl -R testdir/ > acl.txt

    [root@ali /]# setfacl -k /testdir/

    [root@ali /]# setfacl -R –set-file=acl.txt /testdir/

   mask对facl的高压控制

    [root@ali ~]# getfacl /testdir/testdir

    getfacl: Removing leading '/' from absolute path names

    # file: testdir/testdir

    # owner: root

    # group: root

    user::rw-

    user:user1:rwx #effective:r–

    group::r–

    group:g1:rw- #effective:r–

    mask::r–

     other::—      此部分往上表示针对此目录执行的ACL权限  ,操作命令setfacl -m m::rwx dir

    default:user::rwx

    default:user:user1:rw-

    default:group::r-x

    default:group:g1:—

    default:mask::rwx

    default:other::r-x   此部分表示默认针对此目录下将要新建的文件执行ACL权限,操作命令 setfacl -m d:u:user1:rwx dir  

文件的特定特殊属性

    chattr:功用是让你的文件避免被误操作

    chattr +A file 锁定文件的时间戳

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

    +a file 只能增加

    lsattr 可以查看文件被添加的特殊属性

    我们说的权限是有针对文件系统的,比如在vfat分区文件下,不支持linux的权限,很多命令对其不起作用

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/28562