权限管理

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)
上一篇 2016-08-07 22:05
下一篇 2016-08-07 22:05

相关推荐

  • linux下文件处理基础命令(自己预习瞎学的)

                      Linux下文件处理基础命令     1.创建文件   有时候我们会遇到需要创建一个空文件的情况。比如,应用程序可能希望在写…

    2017-07-15
  • Linux系统之用户和组

    Linux系统之用户和组 1、什么是用户 用户:资源获取标识符,资源分配,安全权限模型的核心要素之一 2、没有用户,操作系统可否正常执行? 答案是肯定的 在Linux系统上,用户管理是基于用户名和密码的方式进行资源的分配, Username/UID分为以下类别:     管理员:root, 0  &…

    Linux干货 2016-08-04
  • 第5周作业

    1、显示当前系统上root、fedora或user1用户的默认shell     ~]# egrep "^(root|fedora|user1)" /etc/passwd 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,如:hello();  …

    Linux干货 2017-01-07
  • Shell脚本中select、函数总结

    描述: select控制语句基于Korn Shell中的控制结构 select语句首先显示一个菜单,然后根据用户的选择给变量赋予相应的值,最后执行一系列命令。 语法: select varname [ in arg…] do    commands done 说明: select结构显示arg项的菜单。加入忽略关键字in和参数…

    Linux干货 2016-08-24
  • test

    test

    Linux干货 2016-08-08
  • 条件选择if 条件判断case 文件查找 find locate 以及压缩和解压缩工具

    1 shell脚本编程之 条件选择if 条件判断case  2 文件查找 find locate 以及压缩和解压缩工具 过程式编程语言:  顺序执行  选择执行  循环执行 条件选择之 if语句 选择执行:   注意:if语句可嵌套    单分支 if 判断条件:then 条件为真的分…

    Linux干货 2016-08-15

评论列表(1条)

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

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