ACL权限管理

ACL(Access Control List,访问控制列表)主要是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置,ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。

例①:目录 /home/acl 的权限为:drwxr-x---,所有者与所属组均为 root,在不改变所有者的前提下,只要求other组的用户justin 对该目录有完全访问权限 (rwx)(justin不属于 root group)
(1) 对于/home/acl目录来说justin用户属于other组,如果给 /home/acl的 other 组增加 rwx 权限,这样所有other组成员都拥有了rwx权限。
(2) 如果将 justin 加入到 root 组,为 root 组分配 rwx 权限,显然和题意不符。

为了解决这个问题需要使用ACL的功能,ACL 可以设置特定用户或者用户组对于一个文件的操作权限

ACL权限管理

Setfacl:设置某个文件/目录的ACL设置项目

Getfacl:取得某个文件/目录的ACL设置项目

说明:ACL 有两种,一种是存取 ACL (access ACLs),针对文件和目录设置访问控制列表。一种是默认ACL(default ACLs),只能针对目录设置。如果目录中的文件没有设置ACL,它就会使用该目录的默认 ACL.

参数 功能 参数 功能
-m 修改文件(夹)当前的ACL设置 -x 删除文件(夹)的ACL设置
-M 读取文件(夹)修改的ACL设置 -X 读取删除的文件(夹)ACL设置
-b 删除所有的ACL设置 -R 递归设置ACL
-k 删除默认的ACL设置 -d 设置默认的ACL

注意:除了对用户、组进行设置外还可以对有效权限(mask)进行设置,用户或组所设置的权限必须要存在于mask的权限设置范围内才会生效

上面的例①可以如下操作:


       SetUID SetGID 粘滞位(sticky位)

权限 功能
SetUID

使用户具有文件所有者的权限.。SetUID只会出现在二进制文件中,目录中存在将没有意义。当其它用户使用带用Setuid标识的命令时,自己对此命令也必需有X(执行)的权限

SetGID 设置用户具有该目录所属组的权限。该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.
粘滞位 粘滞位主要是为公共目录(例如权限为777的)设置,作用是用户不能删除该目录中其他用户的文件(root用户除外)。sticky只对文件有效

文件(夹)的权限实际上是由4位8进制数字表示,这4位数字由SetUID+SetGID+粘滞位、属主、属组、其他用户组成,SetUID、SetGID、粘滞位(sticky位)分别用数字4、2、1表示,设置后, 可以用 ls -l 来查看. 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T),赋予SetUID权限chmod命令:chmod 4xxx file(s)或chmod u+s file(s),撤销SetUID权限:chmod xxx file(s)或chmod u-s file(s)

例:1、以SetUID为例:

2、在/home/sticky目录中任何用户都可以创建文件或目录,但只有用户自身和root用户可以删除用户所创建的文件或目录。


chattr与lsattr命令

这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…

+ :在原有参数设定基础上,追加参数。+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

用chattr命令防止系统中某个关键文件被修改

1
2
3
4
5
6
[root@justin ~]# lsattr /etc/resolv.conf
-------------e- /etc/resolv.conf
[root@justin ~]# chattr +i /etc/resolv.conf
[root@justin ~]# lsattr /etc/resolv.conf
----i--------e- /etc/resolv.conf
[root@justin ~]# vim /etc/resolv.conf

让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件

1
[root@justin ~]# chattr +a /var/log/messages
本文转自 justin_peng 51CTO博客,原文链接:http://blog.51cto.com/ityunwei2017/1347712,如需转载请自行联系原作者

RHEL6基础四十九之RHEL文件(夹)权限进阶篇相关推荐

  1. RHEL6基础四十二之RHEL文件共享①NFS

    NFS(Network File System的缩写,即网络文件系统),依赖于RPC协议 (Remote Procedure Cal的缩写,即远程过程调用) 实现文件或信息传送,只要用到NFS的地方都 ...

  2. redhat linux修复文件系统,RHEL6基础四十五RHEL文件系统修复

    fsck---file system check 说明 :检查与修复 Linux 文件系统,可以同时检查一个或多个 Linux 档案系统. 注意:fsck扫描文件系统时一定要在单用户模式.修复模式或把 ...

  3. 【零基础学Java】—多线程(四十九)

    [零基础学Java]-多线程(四十九) 一.并发与并行 并发:指两个或多个事件在同一时间段内发生 并行:指两个或多个事件在同一时刻发生(同时发生) 二.进程和线程

  4. Python编程基础:第四十九节 鸭子类型Duck Typing

    第四十九节 鸭子类型Duck Typing 前言 实践 前言 本节我们一起学习一个非常有趣的知识点:鸭子类型.有这么一句话:If it walks like a duck, and it quacks ...

  5. [Python从零到壹] 四十九.图像增强及运算篇之顶帽运算和底帽运算

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  6. 【Microsoft Azure 的1024种玩法】四十九.在Azure中使用Azure VirtualMachines 搭建Microsoft SharePoint 2016

    [简介] SharePoint Server 2016 的设计.开发和测试以 Microsoft 软件即服务 (SaaS) 战略为核心.SharePoint Server 2016 广泛借鉴了该经验, ...

  7. c语言头文件格式图片_阿波罗 STM32F767 开发板资料连载第四十九章 图片显示实验...

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第四十九章 图片显示实验 ...

  8. 如何选择适合你的兴趣爱好(四十九),现代舞

    如何选择适合你的兴趣爱好(四十九),现代舞 围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第四十九讲--现代舞.现代舞是20世纪初在西方兴起的一种与古典芭蕾相对 ...

  9. 信息系统项目管理师必背核心考点(四十九)合同法

    科科过为您带来软考信息系统项目管理师核心重点考点(四十九)合同法,内含思维导图+真题 [信息系统项目管理师核心考点]合同法 1.要约: 一经对方承诺就成立合同,例如投标人 2.要约邀请: 邀请他人向自 ...

最新文章

  1. 用C#去除代码的SourceSafe管理
  2. 群晖服务器性能测试,原创首发!群晖J3455 G4560 I7 4770HQ功耗性能测试!
  3. 加载顺序_JAVA类代码块和属性的加载顺序问题,不要以为静态块始终最先执行了!...
  4. bzoj2194 快速傅立叶之二
  5. mac 设置默认python为python3
  6. java8 lambda判断_Java8新特性-Lambda表达式
  7. php依赖注入解决什么问题,php – 了解依赖注入的问题
  8. Qt学习笔记-Qt Graphic View Framework
  9. android sdk 64 linux下载,64位Linux机器上的Android SDK
  10. .nett Core之路由配置
  11. 价值连城 生成对抗网络(Gans) 的作者Ian Goodfellow的采访 给深度学习从业者的建议
  12. Matlab添加VS2013编译器
  13. 中国有哪些python比赛_有哪些大学生值得参与的竞赛?
  14. 用C++实现生产者-消费者问题模型
  15. 阿里天池比赛——食物声音识别
  16. 数据可视化ECharts:饼形图2 地区分布模块制作(南丁格尔玫瑰图)
  17. 手把手教你用TensorFlow、Keras打造美剧《硅谷》中的“识别热狗”APP
  18. (C++)1~10000质数表
  19. vue中DPlayer视频播放器使用方法
  20. android畅言作业平台,畅言作业平台学生端

热门文章

  1. 玩转C语言之数组-数组指针
  2. 机器人学习--Turtelbot3学习-- Burger与waffle等版本的切换
  3. keil3 安装教程
  4. C语言 | 编程实现3
  5. php实现商品购物车添加功能,PHP实现添加购物车功能
  6. linux内核杂记(5)-进程终结
  7. C指针原理(10)-编译原理-小型计算器实现
  8. 问:新来的同事都自愿996,这是内卷还是努力啊?
  9. 【学术相关】是什么让女性在计算机史上“隐身”了?
  10. 【深度学习】PyTorch 历史版本安装-祖传老代码运行刚需