zoukankan      html  css  js  c++  java
  • 文件权限的管理以及acl权限列表

    ls -l? 文件名称

    上面的命令以长格式显示文件与目录,每一行都是一个文件或目录的属性数据,每个文件或子目录的属性数据又以7个字段显示,各个字段的说明如下:

    (1)文件类型与权限:该字段共有10个字符,第一个字符表示文件的类型,剩下的9个字符表示文件的权限状态。

    文件类型:

    • - ? ?#普通文件
    • d ? ?#目录
    • s ? ?#socket套接子
    • l ? ?#软链接
    • p ? ?#管道
    • c ? ?#字符设备
    • b ? ?#块设备

    权限状态:

    rw-|rw-|r--
    ?@ $ *
    ?@ ? ?#文件拥有者对文件能做的动作

    ?$ ? ?#文件所在组的组成员能对文件做的动作

    * ? ?#其他人对与文件能做的动作

    (2)连接数:表示该文件所建立的连接的数量

    (3)文件拥有者:表示拥有该文件的用户账号

    (4)文件所属组:表示拥有该文件的组账号

    (5)文件的容量:默认以byte为单位进行计算,表示文件的大小

    (6)创建时间:创建这个文件的日期

    (7)文件名:文件的名称

    监控命令? watch -n 1 ls -lR hello

    初始状态如下:

    chown username file|dir ##更改文件的所有人


    chgrp groupname file|dir ##更改文件的所有组


    chown username.groupname file|dir ##更改所有人所有组


    chown -R username dir ##更改目录本身及里面所有内容的所有人


    chgrp -R groupname dir ##更改目录本身及里面所有内容的所有组

    实验之后整体的效果如下:


    rw- | r-- | r--

    用户权限(u) 组成员权限(g) 其他用户权限(o)

    u优先匹配,g次优先,o当u,g不匹配时匹配

    权限针对目录或文件有不同的种类

    r权限针对文件,表示可以查看文件内容

    r权限针对目录,表示可以ls 查看目录中存在的文件名称

    w权限针对文件,表示可以更改文件的内容

    w权限针对目录,表示是否可以删除目录中的子文件或者子目录

    x权限对于文件,表示是否可以开启文件当中记录的程序

    x权限对于目录,表示是否可以进入目录中

    字符方式修改文件的权限:chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir

    举例如下:


    对象和权限的组合方式多样,不再赘述

    数字方式修改文件的权限:

    各个权限对应的数值: r=4? w=2? x=1 -=0

    u=rwx=7 ?|g=rwx=7| o=rwx=7设定方式

    umask ##查看系统保留权限,默认为022

    umask 077 ##修改该系统保留权限为077,此设定为临时设定,只在当前shell中生效


    永久设定方式

    vim /etc/bashrc ##shell配置文件

    修改之前的配置:


    修改之后的配置:


    vim /etc/profile ##系统配置文件

    修改之前的配置:


    修改之后的配置:


    两个修改的umask值必须一致!

    然后再进行下面两行命令:

    source /etc/profile

    source /etc/bashrc

    重新读取,让设定立即生效

    acl ?## 指定特定的用户对特定的文件拥有特殊权力

    -rw-rwx---+ 1 root root 0 Mar 28 02:39 file

    +表示权限列表开启

    设定acl列表

    setfacl -m u:username:rwx file ? ?#设定用户对file文件可以读写执行

    setfacl -m g:group:rwx? file ?#设定组对文件可以读写执行

    setfacl -x u:username? file ? ?#在权限列表中删除用户的信息

    setfacl -x g:group ? file ?#在权限列表中删除student组的信息

    setfacl -b file ? ? ?#关闭权限列表那么,"+"消失


    这个文件的普通权限也在权限列表中识别,ls -l 看到的权限是不准确的

    这时就要用到命令 getfacl 来查看权限列表的相关内容

    getfacl file

    #内容如下:

    file:file ? ?#文件名称

    # owner: root ? ?#文件的拥有者

    # group: root ? ?#文件的组

    user::rw- ? ?#文件拥有者的权限

    user:westos:rw- ? ?#特殊指定用户的权限

    group::--- ? ?#文件组的权限

    group:student:rwx ?#特殊指定组的权限

    mask::rwx ? ?#权限最大值

    other::--- ? ?#其他人的权限


    mask值

    mask值是能够赋予用户权限的最大值

    当设定acl列表后,如果用chmod命令缩小文件的权限,那么mask值会被更改

    修改之前:

    修改之后:

    setfacl -m m:rwx file?? ? ?#用此命令可以恢复mask的值

    acl列表的默认权限

    当我们需求某个目录对于某个用户可写,并且目录中新建的子目录对也可写就要设定默认默认权限

    setfacl -m d:u:username:rwx? dir


    新建文件对xupter用户有rwx权限
    对已经存在的文件无效
    对目录本身无效


  • 相关阅读:
    JS解析JSON 注意事项总结
    Jquery 绑定标签事件
    System.Globalization.CultureInfo.InvariantCulture 解决不同地域字符串格式不同问题
    c# HttpWebRequest 模拟HTTP post 传递JSON参数
    Django REST framework (DRF) 不能用property或method排序
    django filters TypeError __init__() got an unexpected keyword argument 'lookup_type'
    DRF(Django Rest Framework)备忘
    测试服务器
    还款计算-复式记账
    Django 相关内容blog备忘
  • 原文地址:https://www.cnblogs.com/zhangyanran/p/9928979.html
Copyright © 2011-2022 走看看