码迷,mamicode.com
首页 > 其他好文 > 详细

特殊权限

时间:2018-07-21 22:51:40      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:pos   服务   tick   系统默认   改密码   多用户   帮助   分享   创建文件或目录   

今天看到朋友们讨论LINUX下文件权限的知识,很是激烈,所以就特意整理了一下关于特殊权限的知识,望能对大家有所帮助。另外linux下的访问控制列表(ACL)主要用来控制用户的权限,可以做到不同用户对同一文件有不同的权限,那么具体要如何操作呢?下面就教你如何在Linux下设置访问控制列表(ACL)来控制用户的权限。

suid:当对于一个可执行的二进制文件作用了suid之后,任何人在执行该文件时,临时拥有其所有人的权限
           chmod              u+s 

sgid:
        1.当对于一个可执行的二进制文件作用了sgid之后,任何人在执行该文件时,临时拥有其所有组的权限
            chmod            g+s
        2.当对于一个目录作用了sgid权限之后,任何人在该目录下所创建的文件的所属组,均与该目录的所属组相同

sticky: 对于一个目录作用了sticky权限,该目录下的文件仅其所属人和目录的所属人及root可以删除。

            suid:                 4
            sgid:                 2
            sticky:              1

s和t两个特殊权限说明:

LINUX中除了r w x 三个权限外(分别代表r 读,w 写,x 执行),其实还有两个特殊的权限s 跟t

当s权限在文件所有者 x 权限上时,例如:-rwsr-xr-x,此时称为Set UID,简称为SUID的特殊权限,

即当执行该文件时将具有该文件所有者的权限。

例如:有一个普通用户hff,当hff修改密码时,执行passwd这个命令,passwd该文件权限为:-rwsr-xr-x

1. hff对于 /usr/bin/passwd 这个程序具有 x 权限,表示hff 能执行 passwd
2. passwd 文件的所有者是 root
3. hff 执行 passwd 的过程中,会暂时获得 root 的权限
4. /etc/shadow 就可以被 hff 所执行的 passwd 所修改。

当s权限在文件组 x 权限上时,例如:-rwx--s--x,此时称为Set GID,简称为SGID的特殊权限,

我理解的是:执行者在执行该文件时将具有该文件所属组的权限。

还有一个t权限,Sticky Bit,简称为SBIT权限,只针对目录有效。

-当用户对此目录具有 w, x 权限,亦具有写入的权限时
-当用户在该目录下创建文件或目录时,仅有自己与 root用户才有权限删除该文件或目录

例如:

/tmp 本身权限是drwxrwxrwt,表示任何人都可以在/tmp目录内新增、修改文件,但是只有该文件或目录的建立都与root用户能够删除自己的文件或目录
ACL
      使用拥有权限控制的Liunx,工作是一件轻松的任务。它可以定义任何user,group和other的权限。无论是在桌面电脑或者不会有很多用户的虚拟Linux实例,或者当用户不愿意分享他们之间的文件时,这样的工作是很棒的。然而,如果你是在一个大型组织,你运行了NFS或者Samba服务给不同的用户,然后你将会需要灵活的挑选并设置很多复杂的配置和权限去满足你的组织不同的需求。
Linux(和其他Unix等POSIX兼容的操作系统)有一种被称为访问控制列表(ACL)的权限控制方法,它是一种权限分配之外的普遍范式。例如,默认情况下你需要确认3个权限组:owner、group和other。而使用ACL,你可以增加权限给其他用户或组别,而不单只是简单的“other”或者是拥有者不存在的组别。
     1.开启acl的方式
        centos7 默认支持acl
        centos6及之前,操作系统安装时所创建的文件系统默认支持acl,而操作安装之后使用mkfs格式化的文件系统默认未开启acl,需要手工开启,方法如下:
        (1).tune2fs -o acl /dev/sda5
         (2).mount -o acl /dev/sda5 /app

        不用系统组,不要使某用户的多个组都设置不同的acl group 权限

   2.ACl权限判断顺序
         owner > acl user > group > other

    3.设置ACL
         setfacl -m u:liubei:rwx testdir

    4.使用文件设置acl
             (1).cat acl.txt
                   u:liubei:rwx
                   g:shuguo:---
                   g:weiguo:r-x
             (2).setfacl -M acl.txt testdir/  
       设置默认权限
         setfacl -Rm u:liubei:rwx testdir/    设置当前的权限
         setfacl -Rm d:u:liubei:rwx testdir/  设置未来文件的权限
      删除权限
         [root@centos6  app]# setfacl -x u:liubei testdir/
         [root@centos6 app]# setfacl -x u:guanyu testdir/
         [root@centos6 app]# setfacl -x g:weiguo testdir/

       删除所有权限,清空acl属性
         setfacl -b testdir

       批量删除acl权限
          1.cat aclrm.txt
                u:liubei
                g:shuguo
                g:weiguo
         2.setfacl -X acl.txt testdir/
      删除默认权限
          setf  acl -k testdir

     删除所有权限,清空acl结构
          setfacl -b testdir

     mask 权限的阀值 即权限上限
          setfacm -m m:rwx testdir
          或
          chmod g=rwx testdir
      acl 扩展属性  打包工具不支持存储


      实验:备份带有acl的文件至tar

     1.备份acl
       getfacl * > /root/acl.bak

     2.利用tar备份文件
       tar cvf file.tar *

     3.删除原文件,模拟文件损坏
       rm a b c d -f

     4.恢复文件
       tar xvf file.tar

     5.恢复acl
        setfacl --restore /root/acl.bak

特殊权限

标签:pos   服务   tick   系统默认   改密码   多用户   帮助   分享   创建文件或目录   

原文地址:https://www.cnblogs.com/f-h-j-11-7/p/9348145.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!