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位以后,普通用户将只能删除自己的文件,而不能删除其他用户的文件。

时间: 2024-10-13 06:24:03

Linux权限管理总结(2)--特殊权限的相关文章

20181126文件权限管理之:高级权限suid

文件权限管理之:高级权限suid [[email protected] ~]# touch /root/file1.txt[[email protected] ~]# ll /root/file1.txt-rw-r--r--. 1 root root 0 11月 9 09:02 /root/file1.txt [[email protected] ~]$ cat /root/file1.txtcat: /root/file1.txt: 权限不够问题:为什么会失败?[[email protecte

java权限管理与用户角色权限设计

java权限管理与用户角色权限设计 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将

通用权限管理设计 之 数据权限

阅读目录 前言 初步分析 通用查询机制 数据权限规则 实际应用 结语 前言 前一篇文章<通用权限管理设计 之 数据库设计方案>介绍了[主体]- [领域] - [权限]( who.what.how问题原型 ) 的设计思想 本文将对这种设计思想作进一步的扩展,介绍数据权限的设计方案. 权限控制可以理解,分为这几种 : [功能权限]:能做什么的问题,如增加产品.[数据权限]:能看到哪些数据的问题,如查看本人的所有订单.[字段权限]:能看到哪些信息的问题,如供应商账户,看不到角色. 部门等信息. 上面

Linux基础-管理用户和文件权限

(一)用户和组 用户账号: 超级用户:root用户 普通用户:由root用户或其他管理员创建,只在自己宿主目录中有完全权限 程序用户:不允许登录到系统,如:bin.daemon.ftp.mail 组账号:一个用户至少属于一个组,称为该用户的基本组.如果该用户同时属于其他组,这些组被称为附加组 UID.GID:用户标识号.组标识号,在配置文件"/etc/login.defs"中 root用户为0.程序用户1-499.普通用户500-60000 一.用户管理 用户账号文件: /etc/pa

Linux中权限管理之文件特殊权限

SetUID 1.只有在可执行的二进制程序上设定SUID权限才是有意义的 2.命令执行者要对该程序拥有执行权限 3.命令执行者在执行该程序时获得该程序文件属主的身份 4.SetUID权限只在该程序执行中有效,也就是身份改变只在程序执行中有效 例如: passwd命令拥有SetUID权限,所以普通用户可以改自己的密码 普通用户调用passwd命令的时候,会临时使用passwd宿主的身份运行,即root用户 真正执行的时候会临时通过root身份去修改/etc/shadow文件的内容 通过ll命令查看

mysql——权限管理——授权、收回权限、查看授权

前期准备,新建一个用户: create user 'sww'@'localhost' identified by '123456'; /*创建一个用户*/ select * from user; mysql -h localhost -P 3306 -u sww -p123456 /*DOS窗口中登录查看*/ ======================================================================================== 使用gra

权限管理之获取用户权限信息

对象的本质是id值 原文地址:https://www.cnblogs.com/jintian/p/11255265.html

浅析Linux系统下用户与权限管理

Linux作为一种多用户多任务操作系统,在日常的使用中不可避免地要划分出一个角色的概念来管理和使用计算机,这个角色与每一个计算机使用者关联,在Linux中称这种角色为用户.而在每一个用户使用计算机的过程中,又必然存在对有限计算机资源使用的限制性,那么操作系统就必须提供一种途径来保证每个用户独立.合理的使用计算机. 一.用户和用户组管理   (一)用户及用户组相关基本概念  用户:泛指计算机的使用者.用计算机可识别的用户ID(UID,user id)标识. 用户组:用户容器,用来将多个用户合并为一

Linux权限管理及用户与用户组

第一部分:Linux权限管理 一.基本权限 linux权限机制采用UGO模式.其中 u(user)表示所属用户.g(group)表示所属组.o(other)表示除了所属用户.所属组之外的情况. u.g.o 都有读(read).写(write).执行(excute) 三个权限,所以UGO模式是三类九种基本权限. 用命令 ls -l 可列出文件的权限,第一列输出明确了后面的输出(后面一列代表 ugo权限).第一个字母对应的关系: "-"    普通文件 "d"   目录

linux的档案权限管理

1.linux普通权限 chgrp:改变档案所有组. 用法:chgrp  选项  组名   文件 必要参数: -c 当发生改变时输出调试信息 -f 不显示错误信息 -R 处理指定目录以及其子目录下的所有文件 -v 运行时显示详细的处理信息 --dereference 作用于符号链接的指向,而不是符号链接本身 --no-dereference 作用于符号链接本身 选择参数: --reference=<文件或者目录> --help 显示帮助信息 --version 显示版本信息 chown:改变档