1. ACL权限

1.1 ACL权限简介与开启

(1)ACL权限简介

  ①ACL是Access Control List的缩写,主要目的是在提供传统的owner,group,others的read,write,execute权限之外的局部权限设定。ACL可以针对单个用户,单个文件或目录来进行r,w,x的权限设定,特别适用于需要特殊权限的使用情况。

  ②简单地来说,ACL就是可以设置特定用户或用户组对于一个文件/目录的操作权限。(即,将文件或目录的操作权限赋于某些特定的用户或组)

(2)查看分区ACL权限是否开启

#df –h //先用df查看当前所有分区

#dumpe2fs –h /dev/sda1 | grep acl(查看其中的Default mount options:    user_xattr acl这项,此处表明默认该分区是支持ACL权限的。注意,-h选项表示仅显示超级块信息,而不显示磁盘块组的详细信息)

(3)临时开启分区ACL权限

  #mount -o remount,acl /dev/sda1   (重新挂载根分区,并挂载加入acl权限)

(4)永久开启分区ACL权限

#vi /etc/fstab

UUID=UUID=71c20ba0--43cf-a18b-21f5ef11b893 / ext4 defaults,acl  

#mount -o remount,acl /dev/sda1  (重新挂载文件系统或重启动系统,使修改生效)

1.2 查看与设定ACL权限

1.2.1 查看ACL权限的命令

(1)命令格式:#getfacl 文件名   //查看acl权限

1.2.2设定ACL权限的命令

(1)命令格式:setfacl [选项] 文件名

选项

含义

-m

设定ACL权限

-x

删除指定的ACL权限

-b

删除所有的ACL权限

-d

设定默认ACL权限

-k

删除默认ACL权限

-R

递归设定ACL权限

(2)应用举例

[root@localhost ~]# useradd zhangsan
[root@localhost ~]# useradd lisi
[root@localhost ~]# useradd st
[root@localhost ~]# groupadd tgroup
[root@localhost ~]# mkdir /tmp/project
[root@localhost ~]# chown root:tgroup /project/
[root@localhost ~]# chown root:tgroup /tmp/project
[root@localhost ~]# chmod /tmp/project //0表示其它用户对该目录无任何权限
[root@localhost ~]# setfacl -m u:st:rx /tmp/project //使st用户对/tmp/project具有rx权限,可以通过ll –d /tmp/project查看,目录权限后多了一个“+”号,表示该目录设定了ACL权限。可以通过getfacl查看具体的ACL权限设置(其中-m表示设定ACL权限,u表示对用户设置访问该目录的权限,g表示对用户组设置ACL权限,m表示设定最大有效权限mask) [root@localhost ~]# getfacl /tmp/project //查看/tmp/project的ACL权限 getfacl: Removing leading '/' from absolute path names
# file: tmp/project
# owner: root
# group: tgroup
user::rwx
user:st:r-x
group::rwx
mask::rwx
other::---

1.3 最大有效权限与删除ACL权限

1.3.1 最大有效权限mask

(1)mask权限:

  ①是用来指定最大有效权限的。如果对用户赋予了ACL权限,并不意味着用户就有了这个权限,而是需要和mask权限“相与”才能得到用户真正的权限

  ②只影响acl权限和所属组权限,但不影响所有者的权限

(2)修改mask权限:#setfacl –m m:rx /tmp/project/

1.3.2 删除ACL权限

(1)删除指定用户的ACL权限:  #setfacl –x u:用户名 文件名

(2)删除指定用户组的ACL权限:#setfacl –x g:组名 文件名

(3)删除文件的所有ACL权限:  #setfacl –b 文件名

1.4 默认ACL权限和递归ACL权限

1.4.1 递归ACL权限

(1)递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限

(2)格式:#setfacl –m u:用户名:权限 –R 目录名 (注意,命令后面只能跟目录名,因为文件下不可能再有文件或目录,也就没有递归的问题。)

(3)注意事项:

  ①此处的递归设置只对现有的文件或目录设置ACL设置,执行setfacl命令后,再新建的子文件或子目录并不会自动拥有这个ACL权限。

  ②为了让新建的子文件或目录也自动拥有ACL权限,需加“d”设置父目录的默认ACL权限(见下面的示例)

1.4.2 默认ACL权限

(1)默认ACL权限的作用是如果给父目录设定了ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。

(2)命令格式:#setfacl –m d:u:用户名:权限 目录名 (其中的d表示default

(3)注意事项:默认ACL权限只对目录起作用,而不文件不起作用。因为目录下可以创建文件或目录,但文件下不行。

第7章 权限管理(1)_ACL权限的更多相关文章

  1. 【Linux】 Linux权限管理与特殊权限

    Linux权限管理 权限管理这方面,非常清楚地记得刚开始实习那会儿是仔细研究过的,不知道为什么没有笔记留痕..除了一些基本的知识点早就忘光了,无奈只好从头开始学习一遍.. ■ 基本权限知识 这部分实在 ...

  2. Android权限管理之Permission权限机制及使用

    前言: 最近突然喜欢上一句诗:"宠辱不惊,看庭前花开花落:去留无意,望天空云卷云舒." 哈哈~,这个和今天的主题无关,最近只要不学习总觉得生活中少了点什么,所以想着围绕着最近面试过 ...

  3. 【Java EE 学习 75 上】【数据采集系统第七天】【二进制运算实现权限管理】【权限分析和设计】

    一.权限计算相关分析 1.如何存储权限 首先说一下权限保存的问题,一个系统中最多有多少权限呢?一个大的系统中可能有成百上千个权限需要管理.怎么保存这么多的权限?首先,我们使用一个数字中的一位保存一种权 ...

  4. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据 ...

  5. Linux系列教程(十六)——Linux权限管理之ACL权限

    通过前面的两篇博客我们介绍了Linux系统的用户管理,Linux用户和用户组管理之相关配置文件 讲解了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow ...

  6. Linux权限管理之ACL权限

    注:转载自:https://www.cnblogs.com/ysocean/p/7801329.html 目录 1.什么是 ACL 权限? 2.查看分区 ACL 权限是否开启:dump2fs ①.查看 ...

  7. SNF快速开发平台2019-用户安全控制-权限管理模型实践-权限都在这里

    1.1    是否保存密码 勾选记住密码后,再次开启程序用户密码不需要再次输入,直接显示在密码输入框内,方便快捷. 图 4.1‑1 记住密码的登录页面框 1.2    是否自动登录 勾选自动登录后,再 ...

  8. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码)(终结)

    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装    ...

  9. liunx权限管理之高级权限

    高级权限 suid,sgid,sticky ======================================================== 文件权限管理之:高级权限 问题1: 为什么 ...

  10. linux权限管理之基本权限

    基本权限 UGO ======================================================== 文件权限设置: 可以赋于某个用户或组 能够以何种方式 访问某个文件 ...

随机推荐

  1. Verilog学习笔记基本语法篇(十二)········ 编译预处理

    h Verilog HDL语言和C语言一样也提供编译预处理的功能.在Verilog中为了和一般的语句相区别,这些预处理语句以符号"`"开头,注意,这个字符位于主键盘的左上角,其对应 ...

  2. php中防止SQL注入的方法

    [一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最 ...

  3. python基础之数据类型(二)

    Python3 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 不可变的tupl ...

  4. KB,Kb单位换算,网络带宽中的Kbps和KB/s到底是什么意思? (注:B和b的区别)

    B是指字节(Byte)1个字节有8个比特组成    b是指比特(bit)代表一个2进制位(值为0或1) 上过网的朋友应该会听说过网络带宽这个词,可是这个网络带宽的单位到底是什么,为什么有的人说Kbps ...

  5. 魔术方法__sleep 和 __wakeup

    感觉序列化和反序列化用得倒是比较少了,而json_encode和json_decode用得相对多,都是转化成串,进行入库.传输等.json更方便,但是序列化和反序列化结合这两个魔术方法使用倒还行< ...

  6. 转:Java Web应用中调优线程池的重要性

    不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求.线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的.本文主要介绍Java线程池的使用和如何正确的配置线程 ...

  7. javascript创建对象的几种模式

    在js中有几种模式可以创建对象,通过对象操作所包含的属性与方法. 一般来说,构造函数名称的第一个字母为大写字母,非构造函数名称的第一个字母为小写字母,当然,构造函数与一般函数唯一的区别只是调用的方式不 ...

  8. cocos2d-x3.3 以前版本 工程Xcode6编译时的问题

    Undefined symbols for architecture i386: "_fwrite$UNIX2003", referenced from: _unixErrorHa ...

  9. infopath重复表格无法保存输入内容

    现象: infopath重复表格无法保存文本输入内容,可以保存日期控件输入内容 原因: 在重复表中添加格式类型规则导致无法保存.

  10. Upgrade from SharePoint 2010 to SharePoint 2016

    [转]http://nikcharlebois.com/upgrade-from-sharepoint-2010-to-sharepoint-2016/ In this blog, I will go ...