权限管理

linux文件权限:

    在linux系统中,每个文件或目录都包含有相应的权限,这些权限决定了哪些用户或组能够对此文件做哪些操作,如读取、删除、写入等操作

文件权限分为三类:r,w,x

    应用于文件:

        r:只读,只能查看其文件的内容,例如使用cat命令查看

        w:写入,能修改其文件的内容,但不能删除,也无法查看内容

        x:执行,可执行的二进制程序或者脚本文件

    应用于目录:

        r:能够查看其目录下的文件,但无法查看详细信息

        w:可以在目录下创建或者删除文件,需要配合x权限

        x:可以进入目录,可访问目录下的内容

    X:只对目录的x权限生效,文件不生效

当我们使用ls -l命令查看文件或目录时会列出一系列的属性信息:

2016-08-04_215014.png

最左侧一列由十位组成,其中第一位表示文件的的类型,d表示目录文件,-表示普通文件,等等

其余九位表示文件的权限,其中每三位一组,分为三组,自左而右匹配,第一组表示文件属主的权限,第二组表示文件属组的权限,第三组则为其他用户的权限

修改文件的属主或属组:

chown:修改文件的属主或属组

    -R:递归,对目录下所有子文件及目录全部生效

    –reference:参考文件的属主属组,将文件的属主或属组与某一文件设定一致

     chown owner FILE:修改文件的属主

    chown :group FILE:修改文件的属组

    chown owner:group:修改文件的属主与属组

2016-08-04_221320.png

chgrp:修改文件属组,由于chown包含了此命令的功能,在此不做介绍

权限的八进制表示法:

    — 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—–

    755等于rwxr-xr-x

chmod:权限管理

    -R:递归,修改目录下所有文件及目录的权限

    –reference:参考某文件的权限,将文件的权限设定与指定文件权限一致

三类用户:

    u:文件属主

    g:文件属组

    o:其他用户

    a:表示所有

chmod [OPTION]… MODE[,MODE]… FILE…

权限表示法:

    赋权表示法:直接操作一类用户的所有权限位(可组合)

        u=

        g=

        o=

        a=

     授权表示法:操作一类用户的一个或多个权限位(可组合)

        u+,u-

        g+,g-

        o+,o-

        a+,a-

     八进制表示法:直接使用八进制对所有权限位进行赋权

        如777表示权限为rwxrwxrwx

        755表示rwxr-xr-x

        644表示rw-r—–

umask:文件权限的反向掩码,创建文件或目录时设定的默认权限

    umask:查看当前umask值

2016-08-04_223720.png2016-08-04_223808.png

    umask MASK:修改umask值,只对当前shell进程有效,如果想永久有效 需要在配置文件当中定义umask值

2016-08-04_224125.png

默认创建文件:666-umask值

默认创建目录:777-umask值

特殊权限:SUID,SGID,Sticky

安全上下文:

    1.当用户要发起某个程序为进程时,首先此用户要对此程序文件具有执行权限才行

    2.当程序被发起为进程时,进程的属主是发起者的属主,属组则为发起者的属组

    3.当进程去访问某文件时,权限取决于发起此进程的用户的权限

        (1)当进程的属主与文件的属主所匹配,则应用属主权限

        (2)当进程的属主属于文件的属组,则应用属组权限

        (3)应用other权限

SUID:如果一个可执行程序拥有SUID,当此程序被启动为进程时,进程的属主不再是发起者,而是程序自身文件的属主,SUID只对二进制程序有效

权限设定: chmod u+s FILE

      chmod u-s FILE

      注意:如果属主位拥有x权限,则SUID表示为小s,否则为大S

2016-08-04_225755.png

SGID:当一个可执行程序拥有SGID,此程序运行为进程时,属主不是发起者,而是原文件的属组

    当一个目录拥有SGID,则目录下新建文件的属组同此目录的属组一致

权限设定:

    chmod g+s FILE|DIR

    chmod g-s FILE|DIR

    注意:如果此程序文件的属组位拥有x权限,则SUID表示为小s,否则为大S

2016-08-04_231440.png

Sticky:如果一个目录具有写权限,意味着所有用户都可以任意添加删除目录下的文件,如果添加Sticky权限,则只有文件的所有者或root才能删除该文件

权限设定:

    chmod o+t DIR

    chmod o-t DIR

    注意:如果此目录的other位拥有x权限,则SUID表示为小t,否则为大T

特殊权限八进制表示法:

    000 0

    001 1

    010 2

    011 3

    100 4

    101 5

    110 6

    111 7

2016-08-04_232850.png

chattr:设定文件特定属性:

    -i:锁定文件,只能读取文件,不能修改、删除、移动

    -A:锁定文件访问时间戳

    -a:只能增加

lsattr:查看文件特定属性

2016-08-05_084808.png

FACL:File Access Control List即文件访问控制列表,在原有的u,g,o之外,另一层让普通用户能控制赋权给另外的用户或组的赋权机制,主要用于实现权限的灵活管理。

权限匹配安全模型:

    当程序被运行为进程时,以运行此进程的用户的身份去完成所有操作

    1.当用户以某进程访问文件时,首先判断此进程的属主与文件属主是否一致,如果一致,则应用属主权限,否则,进入第二步

    2.检查此进程的属主是否有特定的FACL权限,如果有,则应用,否则,进入第三步

    3.检查此进程的属主是否属于文件的属组,如果属于,则应用属组权限,否则,进入第四步

    4.检查此进程的属主所属的组是否有特定的FACL权限,如果有,则应用,否则,进入最后一步

    5.应用other权限

setfacl:设定facl权限

    setfacl -m u:USERNAME:MODE FILE | DIR:对文件或目录设定某个用户特定的FACL

2016-08-07_134302.png

    setfacl -m g:GROUPNAME:MODE FILE | DIR:对文件或目录设定某组特定的FACL

2016-08-07_134500.png

    setfacl -M ACL.FILE FILE | DIR:读取指定文件中的FACL列表

2016-08-07_134610.png

    setfacl -R u:USERNAME:MODE DIR:对目录下所有文件都设置FACL 

    setfacl -m d:u:USERNAME:MODE DIR:对目录下后续创建的文件设定默认FACL

2016-08-07_134852.png

    setfacl -x u:USERNAME:MODE FILE | DIR:撤销某个FACL权限

    setfacl -X XACL.FILE FILE | DIR:通过文件中定义的FACL列表来撤销FACL权限

    setfacl -k DIR:撤销目录上的默认FACL权限

    setfacl -b FILE | DIR:清空所有FACL列表

getfacl:可查看FACL权限列表

    getfacl FILE | DIR:查看文件或目录的FACL权限列表

    getfacl FILE1 | setfacl –set-file=- FILE2:复制FILE1文件的FACL给FILE2文件

mask:控制FACL权限的边界,只影响除了属主和other以外的所有权限

用户或组的权限必须在mask设定范围之内才会生效

设定mask权限:

    setfacl -m mask::rx FILE

2016-08-07_135240.png

备份FACL列表:    

    getfacl -R /tmp/dir1 > acl.txt

    setfacl -R -b /tmp/dir1

    setfacl -R –set-file=acl.txt /tmp/dir1

    getfacl -R /tmp/dir1

2016-08-07_135817.png

原创文章,作者:zhai796898,如若转载,请注明出处:http://www.178linux.com/29109

(0)
zhai796898zhai796898
上一篇 2016-08-07
下一篇 2016-08-07

相关推荐

  • 循环的特殊用法及函数

    while特殊用法 while read 变量名;do 循环体 done<文件路径(将文件中的每一行依次读入循环体,赋值给变量)   (())可以实现C语言风格的变量操作 for循环特殊格式 for((控制变量初始化;条件判断表达式;控制变量修正表达式)) do 循环体 done 控制变量初始化仅在循环开始时执行一次,进行条件判断成立后执行循…

    Linux干货 2016-08-21
  • 脚本又见脚本,作业又是作业_第七周

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@centos ~]# fdisk -l &n…

    Linux干货 2016-12-30
  • 马哥教育网络班22期第一周课程练习2-未闻花名

    语法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。 参数: -f 代表[变量名称]中为函数名称。 -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 -p…

    Linux干货 2016-08-15
  • 高级文件系统之-LVM管理

    lvm应用 lvm的重点在于可以弹性的调整filesystem的容量! 而并非在于数据的存储效率及安全上面。 需要文件的读写效能或者是数据的可靠性是RAID所考虑的问题。 lvm:逻辑卷管理器 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统 将设备指定为物理卷 用一个或者多个物理卷来创建一个卷组 物理卷是用固定…

    Linux干货 2016-09-02
  • 实验:httpd

    虚拟主机 httpd-2.4示例步骤: 1. 进行规划虚拟主机 192.168.209.8:80,192.168.209.10:80 www.10linux.com,www.iounix.com /var/www/html/10linux,/var/www/html/iounix 2. ]# mkdir /var/www/html/{10linux,ioun…

    Linux干货 2017-06-04
  • 正则表达式详解

    正则表达式详解

    2017-09-20

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-07 23:33

    文章思路清晰,从权限模型到特殊权限都有着自己的操作和理解。