权限管理

linux文件权限:


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


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


    应用于文件:

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

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

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


    应用于目录:

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

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

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

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


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

wKioL1e1KL7CiWZoAAAjFarUrJE159.png

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


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


修改文件的属主或属组:

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

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

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

    chown owner FILE:修改文件的属主

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

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

wKioL1e1KQ_gIjdEAAAcyAONaS8904.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值

wKioL1e1KUuwXtWFAAAUrV8oyJY745.png

wKioL1e1KXKR8J_tAAAT_H1XhvA988.png

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

wKiom1e1KYfBc6QRAAAXOPg06vI907.png

默认创建文件:666-umask值

默认创建目录:777-umask值

特殊权限:SUID,SGID,Sticky



Linux系统上的特殊权限


特殊权限: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

wKiom1e1KguAUzs_AABUFCkG9_A985.png


SGID:

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

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


权限设定:

chmod g+s FILE|DIR

chmod g-s FILE|DIR


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

wKioL1e1KjDTTQF6AABPONvhdVw496.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

wKioL1e1KlaBBTdLAAAKQ4R3SDw405.png



chattr:设定文件特定属性:

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

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

    -a:只能增加


lsattr:查看文件特定属性

wKiom1e1KnvTut7FAAAjCyElBpg911.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

wKiom1e1KuCywV40AAASTjW0QoQ988.png

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

wKioL1e1KvSiRR4VAAAW5-imy34070.png

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

wKioL1e1KweSX8g1AAAhJKsXP1U646.png

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

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

wKioL1e1Kx3BGvILAABDUEn0d6w076.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

wKiom1e1KzvAMJtmAABDHrXFDTU065.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

wKioL1e1K1DwBc7wAABqNrxwSL8159.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章