文件的从属权限和特殊权限

基础权限

  rwx

    经过今天的洗礼,了解了文件的权限位(rwx),而权限对于目录和文件有着不同的意义

    使用ls -l 命令后可以看到

    -rw-r–r–. 1 root root 10033 8月   2 03:44 install.log.syslog

    横线部分是十个位置,-代表文件类型,剩余九位,每三位为一组,从左到右分别是文件的属主

    (u)rwx,文件的属组(g)rwx,其他用户(o)rwx,

    rwx:读,写,执行

    rwx对文件

    r,如果一个用户对一个文件拥有“读”权限后,代表此用户可以浏览这个文件的内容

    w,如果一个用户对一个文件拥有“写”权限后,代表此用户可以修改和删除这个文件的内容,但是不能删除这个文件本身

    x,如果一个用户对一个文件拥有“执行”权限后,代表此用户可以运行此文件(这个相当危险的,不建议随便给用户x权限)

    rwx对目录

    r,如果一个用户对一个目录拥有“读”权限后,代表此用户可以浏览这个目录中的文件列表

    w,也不可以修改这个目录中的文件内容

    x,如果一个用户对一个目录拥有“写”权限后,代表此用户可以在这个目录中创建新的文件与目录;删除已经存在的文件与目录(不论该文

    件的权限为何!)将已存在的文件或目录进行更名;搬移该目录内的文件、目录位置。对目录来讲不建议随便给一个用户用于w的权限

    如果一个用户对一个目录拥有“执行”权限后,代表此用户可以进入这个目录中,并且在拥有读,写权限的情况下可以浏览目录中的文件列

    表,也可以在目录中创建新文件,如果一个用户对一个目录没有执行权限的话,那么这个用户就无法cd进此目录,而且也无法执行读,写,

    即使是在对此目录拥有读写权限的情况下也罢,对目录来讲建议给用户x权限

   

  相关操作命令:

    赋权

    chmod u=rwx,g=rw,o=x file

    授权

    chmod u+rwx,g+rwx,o+rwx file

    八进制

     每个权限组的r=4,每个权限组的w=2,每个权限组的x=1

    chmod 660 file

默认权限

 umask

    umask是新建文件的默认权限,

   umask

    对文件来将666-umask(默认002)=文件的权限(普通用户),666-umask(默认022)=文件的权限(管理员)

    对目录来讲777-umask(默认002)=目录的权限(普通用户),777-umask(默认022)=目录的权限(管理员)

    相关操作命令

    直接键入 umask 可以查看umask值    

    umask -S 模式方式显示

    [root@ali ~]# umask -S

    u=rwx,g=rx,o=rx

    umask -p 输出,可被调用

    [root@ali ~]# umask -p

    umask 0022

    修改方法

    umask 数值(八进制)

    umask u=rw,g=r,o=

    全局设置:/etc/bashrc,用户设置:~/.bashrc

    如果所得结果某位存在执行权限(奇数),则将其权限加1

三种特殊权限

    

  SUID

    每个程序运行成进程时,这个进程以发起者身份运行,就是发起这个进程的用户,而不是这个程序的属主,应用在文件上,如果一个程序拥

    有了suid权限,那么每个用户运行此程序时都是以这个文件的属主的身份运行的但是如果这个程序拥有SUID特权的时候,这个进程运行的身

    份就不是发起这个进程的用户了,而是这个程序文件的属主。

   相关命令:

     chmod u+s file 增加suid

    chmod u-s file 撤销suid

    占位在属主的x权限位,如果属主原来没有x权限则表现为大写S

  SGID

    用在目录的属组权限上,如果此目录拥有SGID权限之后,用户在此目录下新创建的文件的属组将会是这个目录的属组,而不是创建这个文件

    的用户的私有组,如果一个目录拥有了sgid权限,那么每一个用户进入到此目录创建文件的属组会是这个目录的属组,而不是创建文件的用

    户的属组组

   相关命令:

    chmod g+s file 增加sgid

    chmod g-s  file 撤销sgid

    占位在属组的x权限位,如果属组原来没有x权限则表现为大写S

  STICKY

    也用在目录上,如果此目录拥有STICKY权限的话,用户在此目录只能删除自己创建(自己为属主)的文件,而不能删除其他用户创建的文

    件,即便是用户对此目录有写的权限也不行。

   相关命令:

    chmod o+t dir 增加sticky

    chmod o-t  dir 撤销sticky

    占位在其他用户的x权限位,如果其他用户原来没有x权限则表现为大写T

    特殊权限的数字赋权法

    chmod 4777 ,可以把每一个特殊权限位再看成rwx(及suid,sgid,sticky),操作在原有的传统数字权限位前

    

mask和facl

    mask是创建文件后修改文件的权限的高压线,所有通过facl修改的文件的权限除了文件所有者和other以外,所有人都不能超过mask的权限

  facl :访问控制列表

    如果文件的属主,属组,其他权限设置不能满足你,假如你只想针对某一个或者多个用户设定文件权限的话,facl可以满足你,当一旦设置

    facl权限后 属组的权限将会变成mask的权限,但是mask不会给用户添加原来没有的权限(当文件的属主的权限是读,写,而mask的权限是

    读,写,执行,这种情况下mask不会给用户添加执行权限的)

   facl相关操作命令

    facl

    getfacl file 查看文件的facl列表

    赋权给用户

    setfacl -m u:username:mode file

    setfacl -M acl.txt file(批量添加)

    赋权给组

    setfacl -m g:groupname:mode file

    撤销赋权

    setfacl -x u:username file

    setfacl -x g:groupname file

    setfacl -X acl.txt file(批量删除)

     setacl  -b file 彻底清空所有facl信息

    占位在其他用户的x权限后,以+号表示

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

    facl的备份和恢复命令

    先使用getfacl -R file|dir读去列表然后>重定向保存到文件a.txt

    然后setfacl -k 删除原文件facl列表

    再然后setfacl -R –set-file=a.txt读会facl列表,完整命令示例如下

    [root@ali /]# getfacl -R testdir/ > acl.txt

    [root@ali /]# setfacl -k /testdir/

    [root@ali /]# setfacl -R –set-file=acl.txt /testdir/

   mask对facl的高压控制

    [root@ali ~]# getfacl /testdir/testdir

    getfacl: Removing leading '/' from absolute path names

    # file: testdir/testdir

    # owner: root

    # group: root

    user::rw-

    user:user1:rwx #effective:r–

    group::r–

    group:g1:rw- #effective:r–

    mask::r–

     other::—      此部分往上表示针对此目录执行的ACL权限  ,操作命令setfacl -m m::rwx dir

    default:user::rwx

    default:user:user1:rw-

    default:group::r-x

    default:group:g1:—

    default:mask::rwx

    default:other::r-x   此部分表示默认针对此目录下将要新建的文件执行ACL权限,操作命令 setfacl -m d:u:user1:rwx dir  

文件的特定特殊属性

    chattr:功用是让你的文件避免被误操作

    chattr +A file 锁定文件的时间戳

    +i file 不能删除,更改,改名

    +a file 只能增加

    lsattr 可以查看文件被添加的特殊属性

    我们说的权限是有针对文件系统的,比如在vfat分区文件下,不支持linux的权限,很多命令对其不起作用

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/28562

(0)
M20-1马星M20-1马星
上一篇 2016-08-04
下一篇 2016-08-04

相关推荐

  • 系统用户基本信息

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

    Linux干货 2016-11-20
  • N26-第一周

    博客注册地址查看

    Linux干货 2017-01-03
  • 通过Nginx来安装一个discuz,软件并不是编译安装的

    这次由于时间有限,所以我就没有用编译安装来启动LMP,只有Nginx 是编译安装的 因为是在centos7上面安装的Nginx所以我们这里由于能力有限,暂时不能将其加入开机启动,日后我会进行改进,将其加入开机启动。这里我们给出Nginxd的编译选项及环境   yum groupinstall "Development&…

    Linux干货 2016-10-25
  • sed命令及vim编辑器

    sed[option]… 'script' inputfile…选项:-n:不输出模式空间内容的自动打印-e: 多点编辑-f /PATH/TO/SCRIPT_FILE: 从指定文件中读取编辑脚本-r: 支持使用扩展正则表达式-i: 原处编辑script:'地址命令' 1.地址定界:(1) 不给地…

    Linux干货 2016-08-11
  • keepalive配置文件详解

    第一部分:全局定义块 1、email通知。作用:有故障,发邮件报警。 2、Lvs负载均衡器标识(lvs_id)。在一个网络内,它应该是唯一的。 3、花括号“{}”。用来分隔定义块,因此必须成对出现。如果写漏了,keepalived运行时,不会得到预期的结果。由于定义块内存在嵌套关系,因此很容易遗漏结尾处的花括号,这点要特别注意。 global_defs{ n…

    2017-09-17
  • rrdtool学习笔记

    一、前言 为了做云缓存平台的技术储备,从零开始学习了rrdtool,rrdtool非常强大,刚接触会有摸不着边的感觉,尤其是一堆概念性的东西。学习的切入点便是这些概念,一一理解后你才能品尝到rrdtool的清香,首先要感谢ailms整理的“RRDtool简体中文教程v1.01”,通俗易懂的概况了rrdtool的所有知识。现在整理自己在学习过程中的一些笔记。 …

    2015-03-21