详解Linux ACL权限设置(setfacl和getfacl)

Linux ACL(Access Control Lists),又称访问控制列表,是 Linux 内核所提供的权限控制手段。ACL 出现的最初目的是希望在 NFS 中提供更为灵活的文件权限控制方式,能够更好地支持文件共享。Linux 系统中具有使用 ACL 进行权限设置的能力,可以对文件和目录进行更为细致的权限控制。

setfacl 命令

setfacl 命令用于添加/修改文件或文件夹的 ACL 权限,形式:

setfacl [-bkndRLP] [-m permissions] [-M file] [-x permissions] [-X file] file ...

参数说明:
- -b: 移除有效附加权限。
- -k: 移除默认 ACL 条目。
- -n: 不会将用户和组名称转换为数字ID。
- -d: 设置默认 ACL 条目。
- -R: 递归地为文件和子目录设置 ACL 权限。
- -L: 如果源是一个符号链接,则跟随符号链接并修改其指向的文件/目录的 ACL 权限。
- -P: 不要跟随符号链接的文件/目录,而是忽略符号链接本身的权限。
- -m: 添加/修改 ACL 条目。
- -M: 将 ACL 条目从一个文件复制到目标文件或目录。
- -x: 移除 ACL 条目。
- -X: 从一个文件中移除 ACL 条目。

下面分别介绍 setfacl 命令的几种用法:

添加 ACL 条目

使用 -m 参数来添加 ACL 条目,例如:

setfacl -m u:serena:rw- file.txt

上面的例子中,将对 file.txt 文件添加 ACL 条目,给用户 serena 授予读写权限。

同时也可以同时添加 ACL 条目,例如:

setfacl -m u:tom:--x,g:dev:r--,o::r-- file.txt

上面的例子中,将对 file.txt 文件同时添加两个 ACL 条目,一个给用户 tom 授予执行权限,一个给组 dev 授予读权限,其他人只读权限。

修改 ACL 条目

使用 -m 参数修改某个用户/组的权限,例如:

setfacl -m u:serena:r-- file.txt

上面的例子中,将对 file.txt 文件中已有的 ACL 条目,重新设置用户 serena 的权限为只读。

移除 ACL 条目

使用 -x 参数移除 ACL 条目,例如:

setfacl -x u:serena file.txt

上面的例子中,将对 file.txt 文件中移除指定用户 serena 的 ACL 条目。

递归设置 ACL 权限

使用 -R 参数递归设置文件夹及其子文件夹内的 ACL 权限,例如:

setfacl -R -m u:tom:--x,g:dev:r--,o::r-- folder

上面的例子中,将递归设置 folder 文件夹及其子文件夹内的文件/文件夹的 ACL 权限。

getfacl 命令

getfacl 命令用于查看文件或文件夹的 ACL 权限,形式:

getfacl [-R|-r|-d] [-O outputfile] file ...

参数说明:
- -R: 递归地列出目录层次中的所有文件。
- -r: 不访问符号链接的文件,而是列出链接本身的权限信息。
- -d: 显示默认 ACL 条目。
- -O: 将文件保存到 outputfile 中。

下面介绍 getfacl 命令的几种用法:

查看文件/文件夹的 ACL 权限

读取文件的 ACL 权限,例如:

getfacl file.txt

上面的例子中,会输出 file.txt 文件的 ACL 权限。

递归查看目录及其子目录中的 ACL 权限

递归查看目录及其子目录中所有文件的 ACL 权限,例如:

getfacl -R folder

上面的例子中,会递归查看 folder 文件夹及其子文件夹中所有文件的 ACL 权限。

输出到文件

输出文件 ACL 权限到文件中,例如:

getfacl -R folder > acl.txt

上面的例子中,将会递归输出 folder 文件夹及其子文件夹中所有文件的 ACL 权限信息到 acl.txt 文件中。

以上是关于 Linux ACL 权限设置的详细讲解,我们可以通过 setfacl 和 getfacl 命令来设置和查看文件和目录的 ACL 权限。这种文件和文件夹权限控制的方式更为灵活,可以方便地向指定用户或组授予不同的读写执行权限,应用范围较广。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Linux ACL权限设置(setfacl和getfacl) - Python技术站

(0)
上一篇 2023年3月25日
下一篇 2023年3月25日

相关文章

  • Linux MySQL安装过程(详解版)

    MySQL是一款著名的关系型数据库管理系统,可以在Linux系统中安装运行。下面是Linux下安装MySQL的完整教程。 准备工作 首先,需要一台运行Linux操作系统的计算机,并且具备管理员权限。接着,需要安装以下软件: MySQL安装文件 tar命令 从官方网站下载MySQL安装文件后,使用下面的命令进行解压缩: tar -xzvf mysql-5.7.…

  • SELinux策略规则的开启和关闭(详解版)

    以下是关于SELinux策略规则开启和关闭的完整攻略。 SELinux是什么? SELinux(Security Enhanced Linux)是一个安全性增强的Linux内核安全模块,它可以限制应用程序的权限,防止系统中的恶意软件和攻击者利用系统漏洞对系统进行攻击。 SELinux基础 在讲解开启和关闭SELinux策略规则之前,先来了解一些SELinux…

    SELinux管理 2023年3月25日
    00
  • 详解Linux Stick BIT(SBIT)文件特殊权限用法

    Linux Stick BIT(SBIT)与其他的 Linux 文件权限位有所不同,它是一种特殊的权限位,作用是保护执行文件和目录不被编辑或者删除。当一个文件或目录设置了 SBIT 之后,只有拥有该文件或目录的所有者和超级用户(root)才能够删除或移动该文件,其他用户都无法对其进行修改。 下面是 SBIT 的使用方法: 显示 SBIT 权限 运行以下命令可…

    Linux权限管理 2023年3月25日
    00
  • 详解Linux ifconfig命令:查看和配置网络接口

    ifconfig命令是Linux系统中常用的网络工具之一,用于查看和配置网络接口的信息。 作用与用法 ifconfig用于查询或配置Linux系统中的网络接口,如网卡接口信息、IP地址、MAC地址、子网掩码等。ifconfig的基本用法格式如下: ifconfig [interface] [options] 其中,interface表示要操作的网络接口名称,…

    Linux函数大全 2023年3月24日
    00
  • Linux GRUB磁盘分区表示法

    以下是介绍Linux GRUB磁盘分区表示法的完整攻略,包含实例说明: 什么是GRUB? GRUB是Grand Unified Bootloader的缩写,是一个开源的多操作系统引导程序,可以用于启动计算机上安装的各种操作系统,例如Linux、Windows和Mac OS等。简单来说,GRUB是计算机启动时的一个引导程序,负责加载主操作系统。 什么是磁盘分区…

    Linux启动管理 2023年3月25日
    00
  • 详解Linux cd命令:切换目录

    Linux中的cd命令是一个用于改变当前工作目录的常用命令。该命令允许用户在不切换当前Shell进程的情况下,更改当前所在的文件夹路径。 语法 cd命令的基本语法如下所示: cd [目录名] 这里的目录名指的是用户要进入的目录名称,它可以是相对路径或绝对路径。 使用方法 下面提供几种cd命令的使用方法: 进入指定路径 例如,要进入当前用户的主目录,我们可以使…

    Linux函数大全 2023年3月24日
    00
  • 详解Linux sudo命令:以超级用户权限运行命令

    Linux sudo命令可以让普通用户以超级用户(root)的身份执行某些特定的命令。它的作用是为了保护系统安全,防止一些不必要的破坏或误操作。下面是sudo命令的使用方法: 安装sudo命令 在大多数Linux发行版中,sudo命令默认已经安装。但如果系统中没有该命令,可以使用以下命令进行安装: Ubuntu / Debian 系统: $ sudo apt…

    Linux函数大全 2023年3月24日
    00
  • SELinux策略规则查看方法(seinfo和sesearch)详解

    SELinux是一种强制访问控制(MAC)安全机制,用于限制系统或应用程序的操作,保护系统和数据的安全。SELinux的一个核心组成部分就是策略规则,这些规则定义了哪些过程、用户和资源可以相互访问。为了有效管理和优化SELinux规则,需要了解如何使用seinfo和sesearch命令来查看策略规则。 查看SELinux策略规则 (1)seinfo命令 se…

    SELinux管理 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部