特殊权限和facl
目
录
FACL访问控制
FACL简介
FACL(Filesystem Access Conreol List)是指文件访问控制列表,该属性可以利用文件扩展保存额外的访问控制权限,比如有一次额情况:storm用需要创建一个test文件,他需要cathy用户同样具有rw权限,通常的权限控制做法是需要修改test文件的other权限为rw,但这样做以后所有的用户都具有rw权限,带来极大的安全隐患,此时就该facl发挥作用的时候了。
FACL常用的命令有2个:setfacl和getfacl,这两个命令普通用户都具有执行权限、
getfacl命令查看acl权限
[root@oldboy ~]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
group::r--
other::r--
可以看到,test文件只有基本的user、group、other、该文件对于other用户是只读文件
setfacl设置文件的cal权限
[root@oldboy ~]# setfacl -m u:oldboy:rw /root/test
[root@oldboy ~]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:oldboy:rw-
group::r--
mask::rw-
other::r--
- 当设置了facl权限以后利用getfacl查看发现多了一行:user:oldboy:rw-,表示该文件针对oldboy用户拥有额外的权限rw,此时用户oldboy就具有对文件test的读写权限,但对于其他用户文件是只读的
- 使用ls -al查看该文件,在权限一列显示为如下,多了+号,表示该文件具有额外的权限,使用getfacl命令可以查看
[root@oldboy ~]# ll test
-rw-rw-r--+ 1 root root 0 8月 17 14:52 test
3、添加额外组权限只需要将setfacl -m u:oldboy:rw test 命令中的u改为g即可
批量添加acl权限
用逗号隔开
[root@oldboy ~]# setfacl -m u:oldboy:rw,u:oldgirl:rw,u:oldboy1:rw test
取消权限
-x:为取消acl权限
[root@oldboy ~]# setfacl -x u:oldboy test
[root@oldboy ~]# getfacl test
# file: test
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r—
-b:取消某个文件的全部cal权限
[root@oldboy ~]# setfacl -b test
acl高级特性Default()
1、-R:修改现有的文件和目录下面所用文件以及目录的acl权限
[root@oldboy ~]# setfacl -R -m u:oldboy:rwx /root/local
[root@oldboy ~]# ll local/test
-rw-rwxr--+ 1 root root 0 8月 17 16:06 local/test
2、d:设置目录的cal权限,之后在此目录下创建的文件和目录都继承该目录的所用权限(继承)
[root@oldboy ~]# ll -d local/
drwxr-xr-x 2 root root 6 8月 17 16:12 local/
[root@oldboy ~]# setfacl -m d:u:oldboy:rw local/
[root@oldboy ~]# ll -d local/
drwxr-xr-x+ 2 root root 6 8月 17 16:12 local/
[root@oldboy ~]# touch local/test
[root@oldboy ~]# ll local/test
-rw-rw-r--+ 1 root root 0 8月 17 16:14 local/test
Linux系统特殊权限
Linux特殊权限
对可执行文件的setuid或setgid权限表示将以文件的用户(或组)身份运行,而不是以运行命令的用户身份
目录粘滞位可以为文件删除设置特殊限制,仅文件所有者(和root用户)可以删除目录中的文件。
用符号表示: setuid=u+s; setgid=g+s; sticky=o+t
用数值表示: setuid=4; setgid=2; sticky=1
set_uid
对可以执行的文件有意义,文件的执行有效身份为文件的拥有者,而不是执行者的身份
oldboy对于文件test为其他用户,没有任何权限
suid授权方法
suid 4000 权限字符s(S),用户位置上的x位上设置。
授权方法:chmod 4755 passwd
chmod u+s passwd
suid作用
让普通用户临时拥有可执行的二进制文件的所属主权限,二进制文件需要有执行权限。
当二进制文件没有执行权限,suid的权限显示就是大S。suid仅对二进制可执行程序有效。
如果普通需要操作没有权限的文件,为对应的命令赋予Suid权限,可以实现操作。
注意:suid双刃剑,是一个比较危险的功能,对系统安全有一定的威胁。
[root@oldboy ~]# ll /public/test
-rw-r----- 1 root root 7 8月 17 17:07 /public/test
[oldboy@oldboy public]$ cat /public/test
cat: /public/test: 权限不够
用chmod设置bin/cat可执行文件特殊权限
[root@oldboy ~]# chmod u+s /bin/cat
[root@oldboy ~]# ll /bin/cat
-rwsr-xr-x. 1 root root 54080 4月 11 12:35 /usr/bin/cat
oldboy用户用cat查看/public/test
[oldboy@oldboy ~]$ cat /public/test
135464
set_gid
- 文件的有效执行组身份为文件的拥有组,而不是执行者的组身份
- 目录里新建的文件的拥有组会自动继承目 录的拥有组身份。
3、sgid作用
针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
默认所有用户创建文件,用户和组都是自身,Sgid可以让其他用户再此目录下创建的文件和目录,具有和 此目录相同的用户组设置。
当为某个目录设置了sgid位以后,在该目录中新创建的文件具有该目录的所有组权限,而不是创建该文件 的用户的默认所有者。这样,使得在多个用户之间共享一个目录中的文件变得简单。
用oldboy用户创建一个目录oldboy,root给目录sgid权限
[oldboy@oldboy public]$ mkdir oldboy
[root@oldboy ~]# chmod g+s /public/oldboy/
root用户在oldboy下创建一个目录,查看目录信息,发现拥有者是root,但组是oldboy组,继承了oldboy目录的属性
[root@oldboy ~]# mkdir /public/oldboy/test
[root@oldboy ~]# ll -d /public/oldboy/test/
drwxr-sr-x 2 root oldboy 6 8月 17 18:08 /public/oldboy/test/
sticky
1、sticky授权方法
粘滞位 1000 权限字符t(T),其他用户位的x位上设置。
授权方法:chmod 1755 /tmp
chmod o+t /tmp
2、sticky作用
让多个用户都具有写权限的目录,每个用户只能删自己的文件,表现在others的x位,用小t表示,如果没 有执行权限是T,那么一个目录即使它的权限为 "777" 如果是设置了粘滞位,除了目录的属主和 "root " 用户有权限删除,除此之外其他用户不能删除这个目录。
权限属性chattr
-i:不得任意更改文件或目录
-a:让文件和目录仅可追加内容
进程掩码umake
反向掩码:修改默认创建目录或文件的权限
目录默认最大为777
文件默认最大为666
特殊权限练习题
特殊权限和facl的更多相关文章
- 文件权限之facl丶文件属性丶特殊权限
(1)facl:文件的访问控制列表 作用:对象目录或文件可以对不同的用户设定不同的权限 1)getfacl:查看文件或目录的访问控制列表权限 查看 getfacl file/dir acl权限特征:如 ...
- Linux特殊的文件控制权限FACL
对文件设置特殊的权限,FACL(File Access Control List) ACL简介 基本ACL操作 getfacl 查看文件权限 setfacl 设定acl权限 设置file ...
- Linux FACL(文件访问控制列表)
文件有三种权限 属主权限 属组权限 其他权限 现在有这样一个场景,用户 A 想把文件共享给不是同组内用户 B ,而又不想修改其他权限,这时候 FACL 就起作用了 FACL可以给文件添加一个拓展 ...
- linux用户权限 -> ACL访问控制
UGO设置基本权限: 只能一个用户,一个组和其他人 ACL设置基本权限: r.w.x 设定acl只能是root管理员用户. 相关命令: getfacl , setfacl facl权限 简介 facl ...
- facl权限(getfacl/setfacl)
file access control list:文件访问控制列表 查看facl: [root@localhost test]# getfacl hei # file: hei # owner: ro ...
- linux系统下的权限知识梳理
下面对linux系统下的有关权限操作命令进行了梳理总结,并配合简单实例进行说明.linux中除了常见的读(r).写(w).执行(x)权限以外,还有其他的一些特殊或隐藏权限,熟练掌握这些权限知识的使用, ...
- Linux基础3(文件权限)
文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...
- facl笔记
文件系统访问列表:tom: tom, tom基本组jerry: other:r-- chown FACL:Filesystem Access Control List利用文件扩展保存额外的访问控 ...
- 用户管理_组管理_设置主机名_UGO_文件高级权限_ACL权限
用户管理: 添加用户:useradd tom 设置密码:passwd tom 切换账户: su - tom (不加-也能切换,但是 -会有两点不同 1.有-会切换到该用户的主目录 2.会切换到该用户 ...
随机推荐
- spoj SUBLEX - Lexicographical Substring Search【SAM】
先求出SAM,然后考虑定义,点u是一个right集合,代表了长为dis[son]+1~dis[u]的串,然后根据有向边转移是添加一个字符,所以可以根据这个预处理出si[u],表示串u后加字符能有几个本 ...
- (3)javascript的数据类型
本篇学习资料主要讲解javascript中的数据类型 Javascript的数据类型 Javascript的数据类型:即一个数据不必首先做声明,可以在使用或赋值时再确定其数据的类型,当然也可以先声明该 ...
- SpringBoot自定义参数解析器
一.背景 平常经常用 @RequestParam注解来获取参数,然后想到我能不能写个自己注解获取请求的ip地址呢?就像这样 @IP String ip 二.分析 于是开始分析 @RequestPara ...
- [问题][已解决] 并发场景下 "mysql: too many connections" 原因
问题出现是这样的,用node写爬虫, 之前每条数据都是await插入,并且是阻塞的,后来改成了非阻塞,可以并行插入操作,结果一直找不到原因. 后来在日志中找到了 too many connection ...
- Swift @objcMembers
使用@objcMembers关键字,将类中的所有方法暴露给Objc (效果等同于为所有方法加上@objc). 示例代码: @objcMembers class MyController: UIView ...
- Python入门小练习 002 批量下载网页链接中的图片
我们常常需要下载网页上很多喜欢的图片,但是面对几十甚至上百张的图片,一个一个去另存为肯定是个很差的体验. 我们可以用urllib包获取html的源码,再以正则表达式把匹配的图片链接放入一个list中, ...
- 使用Appache部署WEB服务器
Apache的起源(这个就不说了,百度下就都有了) 简介:Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行, ...
- RHEL7.2安装及配置实验环境
截图太多了,就不一一上传了,请查看这个分享网址 http://pan.baidu.com/s/1kVeYANH 什么时候博客更新下能直接把图一下复制进来多好!省事.
- Suricata的总体架构
Suricata的总体架构 报文检测系统通常四大部分,报文获取.报文解码.报文检测.日志记录:suricata不同的功能安装模块划分,一个模块的输出是另一个模块的输入,suricata通过线程将模块 ...
- php Try Catch多层级异常测试
<?php class a { public function a1 () { try { throw new Exception('123'); } catch (Exception $e) ...