Linux权限管理总结(2)--特殊权限

简介:

1.特殊权限facl(访问控制列表支持)

    标准Linux文件系统(ext2/3/4)支持使用POSIX ACL设置多个复杂文件权限,   前提是文件系统是使用acl选项挂载的。

     在Red Hat Enterprise Linux中,如果通过ls -l显示的权限字符串的最后一个字符是+,则文件或目录设置了ACL。

 getfacl file用于显示文件的ACL

  u:willis:rw--#适用于用户willis

  u:500:---#适用于UID为500的用户

  u::rwx#适用于file文件的拥有者


   g:willis:rwx#适用于组willis

   g:l0:r-x#适用于GID为10的组

   g::rw-#适用于file所属组

   o::rwx#适用于其他所有人

 setfacl用于设置或修改文件的ACL

  # setfacl -m u:willis:rw filename# 授予用户willis读写权限

  # setfacl -m g:westos:rw filename# 授予组westos读写权限

  # setfacl -m g:redhat:r filename# 授予组redhat读的权限


 # setfacl -x u:bob filename# 删除用户bob的ACL权限

 # setfacl -m o::- filename# 修改其他所有人的权限为空

    权限优先级

在确定某个进程(亦即某个运行程序)是否能够访问某一文件时,可按照以下方式应用文件权限和ACL:

1. 如果是以拥有该文件的用户身份运行该进程,那么可应用该文件的用户权限

2. 另外,如果是作为列于用户ACL条目中的用户运行进程,那么应用用户ACL(只要受mask允许)

3. 另外,如果是以与拥有该文件的组相匹配的组身份或以具有明确组ACL条目的组身份运行该进程,如果权限是由任意匹配组授予的,则应用该权限(只要mask许可)

4. 否则,应用文件的其他权限


ACL掩码

     具有ACL的文件拥有一个“mask”(掩码),这个掩码既能够限制拥有该文件的组的最大权限,有能够限制ACL中的补充用户和组所拥有的最大权限。

     getfacl file将当前掩码显示为mask::permissions。

     由ls -ld file显示的组权限也反映了当前掩码(并非所拥有组的权限!)

默认ACL(继承

     目录可以有“默认ACL”条目,系统自动针对在该目录中创建的新文件设置这些条目setfacl -m d:u:bob:rw directory 将设置默认ACL条目,授予用户bob对在directory中创建的所有新文件的读写访问权限。

     这类似setgid权限的方法(针对目录时),使得在该目录中创建的新文件归拥有该目录的组所有。

ACL挂载选项

     挂载文件系统之后,必须启用对POSIX ACL条目的支持。

     安装程序会配置它创建的所有ext4文件系统,以自动启用ACL支持。

      # tune2fs -l /dev/sda1 |grep "Default mount"

      Default mount options:    user_xattr acl

     如果手动格式化文件系统,则需要使用acl挂载选项挂载该系统。

     您可以将手动格式化的ext4文件系统设置为在挂载时自动启用支持,方法是使用tune2fs设置默认

      挂载选项:  # tune2fs -o user_xattr,acl /dev/sda1


2.其他特殊权限 

    安全上下文: 

     进程运行时能够访问哪些资源或文件,不取决于进程文件的属主属组,而是取决于运行该命令的用户身份的uid/gid,以该身份获取各种系统资源。 

   

   suid        ###冒险位 

    u+s        ###针对文件,文件记录动作在执行时是文件所有人身份执行的,与是谁发起的无关     

    chmod u+s file chmod 4777 file 

   

  sgid        ###粘制位 

    g+s        ##针对目录,在目录中创建的文件都自动归属到目录所在组。针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的 

    chmod g+s file|directory 

    chmod 2777 file|directory    

    1.touch命令用户组为root    

    2.新建目录改用户组为student    

    3.给目录g+s权限    

    4.在目录中新建文件。文件的组与touch命令组无关,与目录的组相同           

    stickyid    ###强制位

    o+t    ###一般只用在目录上,可以理解为防删除位,当一个目录被设置了sticky位,则该目录下的文件只能由:

    一、超级管理员删除;

    二、该目录的所有者删 除;

    三、该文件的所有者删除。

    也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。要 删除一个文件,你不一定要有这个文件的写权限,但你一定要有这个文件的上级目录的写权限。也就是说,你即使没有一个文件的写权限,但你有这个文件的上级目 录的写权限,你也可以把这个文件给删除,而如果没有一个目录的写权限,也就不能在这个目录下创建文件。 如何才能使一个目录既可以让任何用户写入文件,又不让用户删除这个目录下他人的文件,sticky就是能起到这个作用。

    stciky一般只用在目录上,用 在文件上起不到什么作用  

    chmod o+t directroy chmod 1777 directory      

    

     由于SUID和SGID是在执行程序(程序的可执行位被设置)时起作用,而可执行位只对普通文件和目录文件有意义,所以设置其他种类文件的SUID和 SGID位是没有多大意义的。    

    对一个属主为root的可执行文件,如果设置了SUID位,则其他所有普通用户都将可以以root身份运行该文件,获取相应的系统资源。当然这在某些场合 时需要的,但是滥用会造成系统的安全隐患。   

    对一个全局可写目录,若其从属于mygrp组,一个属于mygrp组的用户建立文件后属组为自己的私有组,但是加上给该文件夹加上SGID位后,可以让用 户创建的文件从属于该目录所属的组,因为是以文件夹属组的身份来创建的。    

     对于一个全局可写目录,加上sticky位以后,普通用户将只能删除自己的文件,而不能删除其他用户的文件。



本文转自willis_sun 51CTO博客,原文链接:http://blog.51cto.com/willis/1845984,如需转载请自行联系原作者

相关文章
|
9天前
|
安全 Linux 数据安全/隐私保护
Linux权限详解
Linux权限详解
|
19天前
|
Linux 数据安全/隐私保护 Windows
Linux入门指南:linux权限究竟是什么?和文件有什么关系?
Linux入门指南:linux权限究竟是什么?和文件有什么关系?
30 0
|
21天前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
29 0
|
9天前
|
Linux 数据安全/隐私保护
Linux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
13 1
|
1天前
|
Linux 数据安全/隐私保护
Linux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
3 0
|
19天前
|
安全 Linux Shell
linux用户与权限管理
在Linux中,用户和权限管理确保系统安全。创建用户用`useradd`或`adduser`,删除用户加`-r`参数用`userdel`。修改用户属性用`usermod`,密码管理用`passwd`。组管理涉及`groupadd`(创建)、`groupdel`(删除)和`usermod`(添加用户至组)。权限用`chmod`调整,`chown`和`chgrp`改变所有权和组。`root`用户具有最高权限。这些工具支持安全的资源访问控制。
14 2
|
20天前
|
Ubuntu 关系型数据库 MySQL
linux创建用户创建组删除用户以及组分配权限
linux创建用户创建组删除用户以及组分配权限
8 0
|
22天前
|
Shell Linux 开发工具
shell的介绍以及Linux权限的讲解
shell的介绍以及Linux权限的讲解
29 2
|
24天前
|
安全 Linux 数据安全/隐私保护
深入理解Linux文件系统的权限管理
在Linux操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文将深入探讨Linux文件系统中的权限模型,包括用户、组和其他三个层级的读、写、执行权限。通过分析权限位的具体含义和实际作用,文章旨在提供一套系统的方法论,以帮助系统管理员和开发人员更有效地配置和管理文件权限。同时,我们将通过实例展示如何使用命令行工具和配置文件来修改和查看文件权限,以及如何利用权限管理来增强系统的安全性。
|
25天前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 设置终端机的写入权限 mesg 命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置终端机的写入权限 mesg 命令 使用指南
23 0