详解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中的哪些数据需要备份?

    在Linux系统中,需要备份的数据主要包括以下几个方面: 1. 配置文件 Linux系统中的大多数软件和服务都依赖于配置文件,因此配置文件是备份的重点之一。在备份时,需要保存以下几个目录的配置文件: /etc/ 该目录包含了系统的大部分配置文件,如网络配置、用户配置、软件配置等。备份时可以使用命令tar -zcvf etc_backup.tar.gz /et…

    Linux备份与恢复 2023年3月25日
    00
  • 详解Linux chattr命令:修改文件系统的权限属性

    chattr是Linux系统中一个比较强大的命令,可以用来控制文件的属性,包括文件是否可以被删除、修改、重命名等,应用广泛。以下是使用方法的完整攻略。 1. chattr命令的语法 chattr的基本语法如下: chattr [参数] [文件名] 2. chattr命令的参数 chattr命令的参数有很多,这里列出几个常用的: -i:设定文件不能被删除、修改…

    Linux权限管理 2023年3月25日
    00
  • 详解Linux /etc/gshadow文件内容解析

    Linux系统中,每个用户账号都有一个对应的密码,这个密码存储在 /etc/passwd 文件中,但是这个密码是以明文形式存储的,很容易被破解。因此,Linux系统提供了 /etc/shadow 文件来加密存储用户密码。而 /etc/gshadow 文件则对应着系统中的组密码,本文将对 /etc/gshadow 文件的作用和使用方法进行详细讲解。 1. /e…

    Linux用户和用户组管理 2023年3月25日
    00
  • Linux mount命令详解:挂载Linux系统外的文件

    Linux中的mount命令是用于挂载文件系统的,它提供了访问文件系统的方法。在使用mount命令挂载文件系统时,我们需要了解以下几个方面: 设备文件 挂载点 文件系统类型 挂载选项 设备文件 在Linux中,一切皆文件。硬盘、U盘、CD/DVD都以文件形式存在于/dev目录中,这就是我们所说的设备文件。我们需要了解需要挂载的设备文件名,如/dev/sda1…

    Linux文件系统管理 2023年3月25日
    00
  • Linux /sbin/init初始化系统环境

    Linux系统的/sbin/init进程是操作系统启动过程中的第一个进程,它的主要作用是初始化系统环境并启动其他的进程。接下来,我将详细介绍Linux /sbin/init初始化系统环境的完整攻略,包括进程启动的不同步骤和重要作用。 启动过程 Linux /sbin/init进程的启动过程可以分为以下几个阶段: BIOS 当电脑启动时,BIOS首先被加载到系…

    Linux启动管理 2023年3月25日
    00
  • rsyslogd配置文件格式及其内容详解

    rsyslogd是一个流行的系统日志守护进程,支持灵活的日志输入、输出机制,可高效地收集、存储、分析系统消息、应用程序日志、安全日志等大量信息。 rsylogd的配置文件格式非常灵活,可以自定义配置多个不同类型的日志事件,处理机制丰富,包括日志筛选、格式化、发送至远程服务器、自定义动作、过滤器等等。 以下是rsyslogd配置文件格式及其内容的完整攻略。 配…

    Linux系统日志管理 2023年3月25日
    00
  • 详解Linux lsattr命令:查看文件系统属性

    下面我详细讲解一下 Linux lsattr 命令的作用与使用方法的完整攻略。 简介 lsattr 命令是 Linux 下的一个文件工具,它用于查看文件或目录的属性。lsattr 主要用于查找某些文件的属性信息,以及明确是否有特殊权限的目录和文件。 语法 lsattr 命令的语法如下: lsattr [-R] [-adl] file/dir 其中,-R 表示…

    Linux权限管理 2023年3月25日
    00
  • Linux mke2fs命令:格式化硬盘(给硬盘写入文件系统)

    mke2fs是Linux下的一个用于创建ext2/ext3/ext4文件系统的命令合集。它的详细用法如下所述: 命令语法 mke2fs [-c|l filename|L label] [-b block-size] [-f] [-i bytes-per-inode] [-I inode-size] [-J journal-options] [-G meta …

    Linux文件系统管理 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部