Linux文件权限及ACL

文件权限

文件或目录可存取的身份分为3类,owner/group/others (所属者/所属组/其他人) ,所以访问一个文件或目录的权限分为三种, 所有者权限,所属组权限,其他人权限 (通过ll text.log查看)。 在linux系统中常用的权限分为3种 r(read) w(write) x(excute)。

对文件或目录的权限进行修改时,要用到chmod命令

  • 模式法

    chmod WHO OPT[PER] FILE 修改文件权限  
        WHO:u  g  o  a      
        OPT:+  —  =     
        PER:r  w  x
    例:chomd suer1+w file1       
    
    特殊权限X   只对目录加x
                对文件:无执行权限,不会增加x权限
                        任意3种人有执行权限,则都加
  • 数字法

    将rwx由二进制转换为8进制:
    r:4  w:2  x:1
    chmod NUMBER FILE
        --reference a b     将b的权限设置为和a一样
    例:chmod 762 file1
  • 权限对目录的意义

    读:只能查看目录文件列表,不能访问,也不能cd(查看,删除)

    执行:可以cd,不能ls,可以访问目录中的文件。执行时基础权限

    写权取:配合x权限才生效

新建文件和目录的默认权限

umask值 可以用来保留在创建文件权限,非特权用户umask的值为:002;特权用户 (root)的umask的值为:022。

新建文件(file)的默认权限:666-unmask

新建目录(dir)的默认权限:777-umask

文件权限(file)所得结果某位存在执行权限(奇数),结果+1

UMASK掩码:将文件对应的权限位去除

umask       查看
umask #     设定umask值
    umask 022
umask -S    输出方式显示
umask -p    输出可被调用
/etc/bashrc 全局设置
~/.bashrc   用户设置

特殊权限

  1. 任何一个可执行程序文件能不能启动为进程,取决发起者 对程序文件是否拥有执行权限
  2. 进程的属主为发起者,进程的属组为发起者所属的组
  3. 进程访问文件时的权限,取决于进程的发起者
  • SUID(4):作用于文件所属者,只能放在二进制可执行文件才有意义。

    功能:继承所有者权限运行该文件。

    chmod u+s file1
    chmod u-S file1
    chmod 4777 file1
  • SGID(2):作用于文件所属组。放在二进制可执行程序才有意义

    功能:

    1. 任何用户都将继承所属组权限运行该文件。
  • chmod g+s file1/dir1
    chmod g-s file1/dir1
    chmod 2777 file1/dir1
  • Sticky(1):作用于其他人。作用在目录上才有意义。

    功能:只有自己才能删除自己的文件。

    chmod o+s dir1
    chmod o-s dir1
    chmod 1777 dir1

    Access Control List

  1. 除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

  2. CentOS7 默认创建的xfs和ext4文件系统具有ACL功能,之后的没有

  3. ACL生效顺序:所有者,自定义用户,自定义组,其他人

  4. 添加ACL之后的文件或目录的权限后会有“+”标记

  • 关于文件ACL的查看,设置和更改

    getfacl file        查看
    
    setfacl [options] [u/g]:[name]:[rwx] file   设置
                -m 
                -Rm
                -M
                -m 
                -x 
                -X
  • mask掩码

mask只影响除所有者和other的之外的人和组的最大权限。Mask与用户的权 限进行逻辑与运算后,变为有限的权限(Effective Permission)

  • mask更改 setfacl -m mask::rwx file

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

(2)
kstg5663294kstg5663294
上一篇 2017-06-01
下一篇 2017-06-01

相关推荐

  • 进程管理之工作管理详解(job control)

    进程管理之工作管理详解(job control) 1 什么是工作管理(job control)   我们知道linux是多任务多终端工作的操作系统。我们可以在多个终端进行工作,也可以在一个终端进行多个任务工作。那在一个终端同时进行多个工作任务,就称为工作管理。比如这种情况,在一个终端,你想要复制文件,同时你还想压缩打包文件,甚至你还想编辑文件,这个…

    Linux干货 2017-05-14
  • 运维工程师技能需求排行

    这是我今天在拉勾网搜索运维,翻完了4四页也招聘信息之后得到的,我的目的是想要看看之后的学习,哪个更应该成为重点,有些在我意料之中,有些还真的没想到,算是努力了一个小时的收获吧,分享给大家。
    注意:其中的看法仅代表个人观点,很多都是依靠我自己的学习经验和工作经验累积的

    Linux干货 2017-12-12
  • Linux第三周总结

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d ” -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。 ~]# who|tail -1 3、取出当前系统上被用户当作其默认shell的最多的那个shell ~]# cut -d’:’…

    2017-07-16
  • 重构-改善既有代码的设计:重构原则(二)

    1.什么是重构 重构(Refactoring):在不改变软件的功能和外部可见性的情况下,为了改善软件的结构,提高清晰性、可扩展性和可重用性而对软件进行的改造,对代码内部的结构进行优化。 2.为何重构   1)改进软件设计(整理代码) 重构和设计是相辅相成的,它和设计彼此互补。有了重构,你仍然必须做预先的设计,但是不必是最优的设计,只需要一个合理的解…

    Linux干货 2015-04-07
  • 马哥教育网络班22期第5周课程作业

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

    Linux干货 2016-12-05
  • 证书及加解密原理图解

    证书管理 现在上网大多数网站都是使用https的协议,https是一个安全的访问方式,数据在传输过程中是加密的,这时候在服务器端就需要使用证书。 科普加解密流程 服务器端客户端 服务器在和客户端通信前必须先建立SSL会话,下图解析SSL会话过程

    Linux干货 2016-09-25