从命令行将继承权限转换为显式权限

从命令行将继承权限转换为显式权限

我有一个 CIFS/SAMBA 网络共享,名为公开_分享在 TrueNAS Scale(基于 Debian)上,它是一个共享区域,本地网络上的每个人都可以完全访问该区域以删除文件和文件夹。在这个网络共享中,我有一个名为 Downloads 的文件夹,其中包含各种操作系统的所有可执行安装程序、工具、用于启动虚拟机的 ISO 映像等。我在树中列出了目录结构,如下所示。

Public_Share
    Downloads
        Autoruns
        ISO Images
        ProcessMonitor
        Rufus

我尝试在网络共享上启用 POSIX ACL,以便对新文件/目录具有完全权限和默认权限,但随后显式设置执行仅有权限(无写入权限)下载目录及其子目录,以便非管理员用户无法删除其中的内容。我相信我正在寻找的是能够定义显式权限,这应该允许我将权限与父级分开,然后我可以从中修改其他类来删除允许。

从 TrueNAS 的 CLI 中下载目录当前具有以下 ACL:

root@FS-Home[~]# getfacl /mnt/pool0/public_dataset/Downloads
getfacl: Removing leading '/' from absolute path names
# file: mnt/pool0/public_dataset/Downloads
# owner: root
# group: root
user::rwx
group::rwx
group:builtin_administrators:rwx
mask::rwx
other::rwx
default:user::rwx
default:group::rwx
default:group:builtin_administrators:rwx
default:mask::rwx
default:other::rwx

在 Microsoft Window 文件资源管理器中,我可以通过单击来删除/阻止从父目录(网络共享)的继承禁用继承按钮。 在此输入图像描述

然后单击将继承的权限转换为该对象的显式权限选项。

在此输入图像描述 我可以在命令行中为整个网络共享设置所需的权限和新文件/目录的默认权限,但不幸的是,我无法找到将下载权限转换为命令显式权限的方法-线。

# Public_Share
    # clear ACLs
        setfacl -R -b /mnt/pool0/public_dataset

    # Set default UNIX permissions
        chown -R root:root /mnt/pool0/public_dataset
        chmod -R 0777 /mnt/pool0/public_dataset

    # Allow built-in administrators full permissions and add full permissions to default permissions for new files/directories
        setfacl -R -m g:builtin_administrators:rwx /mnt/pool0/public_dataset
        setfacl -d -R -m group:builtin_administrators:rwx /mnt/pool0/public_dataset

我有什么想法可以实现这一目标吗?

期望的看起来像这样:

root@FS-Home[~]# getfacl /mnt/pool0/public_dataset/Downloads
getfacl: Removing leading '/' from absolute path names
# file: mnt/pool0/public_dataset/Downloads
# owner: root
# group: root
user::rwx
user:root:rwx
group::rwx
group:root:rwx
group:builtin_administrators:rwx
mask::rwx
other::r-x
default:user::rwx
default:user:root:rwx
default:group::rwx
default:group:root:rwx
default:group:builtin_administrators:rwx
default:mask::rwx
default:other::r-x

在此输入图像描述

答案1

我相信我通过几个命令获得了相同的结果。

看来显式修改写权限下载当父目录已授予写入权限时,目录被拒绝似乎会强制整个目录停止从网络共享继承权限。我本质上是在否定对自身的写权限其他权限类。

setfacl -R -m other:r-x /mnt/pool0/public_dataset/Downloads
setfacl -d -R -m other:r-x /mnt/pool0/public_dataset/Downloads

相关内容