权限管理

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

相关推荐

  • 马哥教育网络班21期-第一次课程作业

    计算机组成部分及其作用 1.总线 电子管道,携带信息字节并在各个部件间传输。分为地址总线,数据总线,控制总线。 CPU最大可寻址范围:2^N*M,  N为地址总线数量,M为数据总线数量。 2.I/O设备 I/O设备及输入输出设备,最常见的输入设备就是我们非常熟悉的键盘,鼠标,我们通过我们通过这些设备向计算机传达指令,让计算机完成我们想要它完成的工作…

    Linux干货 2016-06-29
  • mariadb基础应用

    mariadb基础应用 一、 前言 MariaDB is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users …

    Linux干货 2016-12-16
  • Linux命令学习总结:cp命令

    Linux命令学习总结:cp命令 命令简介:      cp命令用来复制文件或目录。指令英文原义:copy,copy files and directories      指令所在路径:/bin/cp 命令语法: cp [OPTION]… [-T]   SO…

    Linux干货 2017-07-23
  • mysql-proxy 读写分离

    1. 简介     mysql-proxy 是官方为此的一个测试,项目, 可以完成读写分离。但是项目目前还不是很成熟,这里仅作测试。  2. mysql-proxy安装部署 # wget http://downloads.mysql.com/archives/get/file/mysql-…

    Linux干货 2015-12-21
  • N28-第一周

    *计算机的组成以其功能: 当今计算机系统由硬件系统和软件系统两大部分组成。硬件系统是指计算机的物理设备,包括CPU,存储器,输入/输出模块等。软件系统则是各种程序和数据的集合。 硬件结构的基本构成: 处理器: 用于控制计算机的操作,执行数据处理功能,是计算机硬件的核心。由控制器,运算器和一组寄存器组成。 控制器:负责根据读入的指令决定计算机的操作 运算器:负…

    2017-12-06
  • 基于mysql虚拟用户认证​

    虚拟用户:                             用户账号存储于何处? …

    Linux干货 2016-10-17

评论列表(1条)

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

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