事情就是这样。我在 win10 上运行带有 VMbox 的 debian 10。有点习惯 UNIX 环境。我使用 vsftpd 在虚拟 Debian 和我的实际 WWin10 之间传输文件。我主要在 root 下做事,但我的 FTP 传输有 alex 用户。我想要做的:我有一个文件夹 /home/alex/STUFFMAGREGA ,我在其中存储要传输到我的 Win10 的文件,但事情是当我将一些日志从 /var/log 复制到根目录下的那个文件夹时,我无法通过 FTP 以 alex 的身份访问它们,因为我没有正确的权限。
我该如何做到这一点,以便当任何文件以 /home/alex/STUFFMAGREGA 结束时,它变成 alex 的?
我尝试过的事情:
尝试创建一个包含对目录具有相同权限的 root 和 alex 的组。
sudo mkdir -p /home/alex/STUFFMAGREGA sudo groupadd share sudo usermod -a -G share alex sudo usermod -a -G share root sudo chgrp -R share /home/alex/STUFFMAGREGA sudo chmod -R 2775 /home/alex/STUFFMAGREGA
它没有用。我将 /var/log 中的日志复制到 Root 下的 /home/alex/STUFFMAGREGA,然后以 Alex 身份访问此 ftp 文件夹,但无法打开该文件。我只能删除它。
chmod g+s alex /home/alex/STUFFMAGREGA
或chmod g+s /home/alex/STUFFMAGREGA
。这里我尝试让这个目录下的所有新文件都继承文件夹的设置权限。
没用。
关于如何使其工作的任何想法?
chmod g+s
只会使新文件继承“组所有权”,但实际上不是组权限——这些仍然由 umask 决定。它甚至没有接近 Windows 的 ACL 继承。但是,Linux确实有一种支持继承的 ACL 形式,可以使用该
setfacl
工具进行访问。一个文件夹可以有两种 ACL 条目,“正常”(影响目录本身)和“默认”(由新文件和子文件夹继承)。你可以通过两种方式做到这一点。您可以继续使用 g+s 进行组继承,并且只使用 ACL 强制文件继承默认组权限:
或者您可以删除 g+s 并指定直接授予对特定组访问权限的 ACL 条目(作为“有效”条目和“可继承”条目):
速记(
g:
对于组,d:
对于默认/可继承):