我有一个 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