20160803普通权限与特殊权限及umask

权限

    任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限.即权限决定用户对文件或者目录的使用范围.在Linux系统中,root的权限是最高的,可操作的权限最大,通常情况下root账号只用于管理系统的重要信息,并不做日常维护工作,所以正确设定用户的权限对系统的安全性尤为重要.

普通权限:


文件目录只针对三类用户: 

    u :属主    g :属组    o :其他用户

而权限分为三种:      

     r :读readable    w :写writable    x :写excutable

权限对文件与目录的含义:

文件: 

    r(可读权限):可以使用类似cat等命令查看其文件的内容

    w(可写权限):可以编辑或删除其文件

    x(可执行)  :可以运行此文件

目录:

    r: 可以对此目录查看目录内的文件内容,如 ls

    w:可以在此目录创建文件或目录,但必须有x权限的前提下

    x:可以使用cd切换进此目录或 ls -l 查看目录内文件的详细信息

用命令 # ll file 可查看file 的权限以及属主,组

[root@localhost testdir]# ll
total 0
-rw-r--r--. 1 root root 0 Aug  3 22:59 fi
[root@localhost testdir]#

一组权限为rwx,用八进制来表示一下;      注意:此排序是不能乱排序的。

   权限        二进制       八进制  

    rwx         111            7

    –x         001            1

    -w-         010            2

    -wx         011            3

    r–         100            4

    r-x         101            5 

    rw-         110            6

    rwx         111            7

如此一来,则每三位权限为一组就可以直接用数字来表示了.如上命令 fi 文件权限为 0644 

修改文件权限: chmod

root可以修改如何文件或者目录的权限,其他用户只能修改属主是自己的文件或者目录

    chmod [OPTION]… OCTAL-MODE FILE…

    -R: 递归修改权限

    chmod [OPTION]… MODE[,MODE]… FILE…

chmod可以直接修改权限或者赋予某一项权限:

    修改一类用户的所有权限:

    u= g= o= ug= a= u=,g=

    修改一类用户某位或某些位权限

    u+ u- g+ g- o+ o- a+ a- + –

    chmod [OPTION]… –reference=RFILE FILE…

    参考RFILE文件的权限,将FILE的修改为同RFILE;

更改文件的属主,属组  (change ower )  chown

    1. chown [OPTION]… [OWNER][:[GROUP]] FILE…  //修改文件的属主或者属组

  # chown

    2. chown [OPTION]… –reference=RFILE FILE…

    # chown --reference=/etc/inittab /etc/passwd

更改组 (change group ) chgrp :

 chgrp [OPTION]… GROUP FILE…

# chgrp bin f1   //修改文件f1属组为 bin , 此处属组可以用Gid代替

反掩码 :umask 

在Linux系统里,以root身份创建file的默认权限为644,而目录为755,普通用户创建文件是默认是664,目录默认权限是775.次处造成两者权限不同是因为umask-反掩码

    文件的最高权限为777,目录的最高权限为666(目录没有执行x权),系统会根据发起创建文件或者目录的用户来判断使用的umask值,然后以(777-umask)|(666-umask)得到的值来作为文件的权限

    所以,umask值是从文件或者目录上屏蔽掉最大权限相应的位,从而得出默认权限

    dir :777-umask

    file:666-umask (若得出的三位数中有奇数则加1,偶数保留)


umask值是 /etc/bashrc里定义的,用一个判断语句来决定的,当登录的用户UID小于0时使用022作为umask值,否则使用002作为umask值,然后在与系统默认创建文件和目录的值(666/777)进行减法运算,最后得出的就是文件或目录的值。

//这就是判断umask值的if else语句

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

       umask 002

    else

       umask 022

    fi

umask 相关命令:

        umask: 查看

umask #: 设定

umask 002

umask –S 模式方式显示

umask –p 输出可被调用

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


特殊权限 SUID SGID Sticky :

        SUID 权限:

执行 设置SUID 权限的文件,执行者可以以文件属主的身份执行;然而suid只对二进制可执行程序有效,而设置在目录上无意义

权限设定: chmod u+s FILE

 chmod u-s FILE

特设权限位:1—

SGID 权限:

与SUID类似,可作用于目录

特设权限位:2—

Sticky 位:

在目录设置Sticky 位,只有文件的所有者或root可以删除该文件,其他人无法删除文件,Sticky设置在文件上无意义

chmod o+t DIR…

chmod o-t DIR…

特设权限位:4—

权限位映射

SUID: user,占据属主的执行权限位

s: 属主拥有x权限

S:属主没有x权限

SGID: group,占据属组的执行权限位

s: group拥有x权限

S: group没有x权限

Sticky: other,占据other的执行权限位

t: other拥有x权限

T: other没有x权限

设定文件特定属性

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

chattr +a 只能增加

lsattr 显示特定属性


访问控制列表ACL:

ACL: Access Control List,实现灵活的权限管理

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

 CentOS7.0默认创建的xfs和ext4文件系统有ACL功能。

 CentOS7.X之前版本,默认手工创建的ext4文件系统无ACL功能。需手动增加:

tune2fs –o acl /dev/sdb1

mount –o acl /dev/sdb1 /mnt

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

为多用户或者组的文件和目录赋予访问权限rwx

mount -o acl /directory

getfacl file |directory

setfacl -m u:wang:rwx file|directory

setfacl -Rm g:sales:rwX directory

setfacl -M file.acl file|directory

setfacl -m g:salesgroup:rw file| directory

setfacl -m d:u:wang:rx directory

setfacl -x u:wang file |directory

setfacl -X file.acl directory

ACL文件上的group权限是mask 值(自定义用户,自定义组,拥有组的最大权限) ,而非传统的组权限 ====>即组的权限只能与mask值相等或者比mask低

    # setfacl -m m::rw file/dir 

    # setfacl -q

    getfacl 可看到特殊权限: flags

    默认ACL权限给了x,文件也不会继承x权限。

    base ACL 不能删除

    setfacl -k dir 删除默认ACL权限

    setfacl -b file1清除所有ACL权限

    getfacl file1 | setfacl –set-file=- file2 复制file1的acl权限给file2

mask只影响除所有者和other的之外的人和组的最大权限

Mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限

(Effective Permission)

用户或组的设置必须存在于mask权限设定范围内才会生效。

setfacl -m mask::rx file

–set选项会把原有的ACL项都删除,用新的替代,需要注意的

是一定要包含UGO的设置,不能象-m一样只是添加ACL就可以.

如:setfacl –set u::rw,u:wang:rw,g::r,o::- file1

备份和恢复ACL

主要的文件操作命令cp和mv都支持ACL,只是cp命令需要

加上-p 参数。但是tar等常见的备份工具是不会保留目录

和文件的ACL信息

#getfacl -R /tmp/dir1 > acl.txt
#setfacl -R -b /tmp/dir1
#setfacl -R --set-file=acl.txt /tmp/dir1
#getfacl -R /tmp/dir1

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

(0)
hunterhunter
上一篇 2016-08-04
下一篇 2016-08-04

相关推荐

  • 生产环境日志审计

         日志审计,就是记录所有系统和相关用户行为的信息,并且可以自动分析,处理。在中小企业环境中,一般都是在单个服务器上记录日志,而大型企业的生产环境当中,会有专门的日志服务器乃至集群。本文通过sudo配合centos自带的rsyslog(syslog)服务,进行日志审计。    &nb…

    Linux干货 2016-10-20
  • 优云云监控:先定一个运维小目标,比方监控它10000台主机

    “想做世界最好是对的,但是最好先定一个能达到的小目标,比方说我先挣它一个亿。”,王首富云淡风轻地给各行各业提供了一个很好的Roadmap,包括我们运维。的确,如今数据中心的规模增长速度也已像一匹脱缰的野马,各地都频频建设起超大型数据中心。按工信部的定义,超大型是指规模大于等于一万个标准机架的数据中心,考虑到虚拟化技术的使用,实际上需要运维的主机规模很容易超过…

    系统运维 2016-12-05
  • 开机启动流程

    Centos的开机启动流程 具体步骤解释:  第一步:加电自检:POST         加电自检是检测硬件设备是否正常运行,以及一些外围设备的输入输出是否存在。 自检功能的实现是依靠BIOS软件程序实现的 BIOS即基本输入输出系统,它是装载在一个硬件芯片COMS上的,加电过程…

    Linux干货 2016-09-13
  • 在CentOS中获取命令帮助

    在CentOS中获取命令帮助    在使用和学习CentOS系统中,当我们遇上不熟悉的命令却又需要了解它的详细用法的时候,我们需要获取帮助。除了借助他人和搜索引擎之外,自己通过查看系统帮助文档来解决问题是很重要的。下面就来介绍如何获取帮助以及简单的解决思路:    一、如何获取命令帮助 Linux提供多层次的命令帮助:…

    Linux干货 2016-07-27
  • 第六周练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; 1.[root – www ~]#>cp /etc/rc.d/rc.sysinit /tmp/2.[root – www ~]#>vi /tmp…

    Linux干货 2016-12-11
  • Linux下各类颜色文件的意思

    Linux下各类颜色文件的意思   Linux系统对在终端下的各文件进行了颜色区分,了解各个颜色文件对应的意思对是学习Linux必须要掌握的。Linux文件颜色如下图: 1、白色:表示普通文件(-) 2、蓝色:表示目录(d) 3、绿色:表示可执行文件(-) 4、红色:表示压缩文件(-) 5、浅蓝色:链接文件(l) 6、黄色:表示设备文件(c) 7、…

    Linux干货 2016-10-18

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-04 20:58

    总结的很好,如果能有一些代码高亮就更好的。