如何设置目录权限,使组可以读取和写入其中的文件? (无论谁创建了文件)

如何设置目录权限,使组可以读取和写入其中的文件? (无论谁创建了文件)

我创建了一个目录,该目录属于该www-data组。我想让该组的成员可以写入其中的文件,无论文件是谁创建的。我的用户名是pi.我尝试过这样的:

mkdir ./shared
sudo chown pi ./shared
sudo chgrp www-data ./shared
sudo chmod -R 770 ./shared
sudo chmod g+sw ./shared

如果我用 进行检查ls -l,它看起来像这样:

drwxrws--- 2 pi   www-data 4096 sept 28 17:10  shared

我在其中创建了一个新文件:

cd ./shared
touch ./test.txt

但如果我检查一下,该组没有新的写入权限test.txt

-rw-r--r-- 1 pi www-data 0 sept 28 17:10 test.txt

我有什么错吗?我无法sudo chmod -R 770 ./shared每次运行,脚本/网络服务器都会在目录中创建一个新文件。

如何创建一个共享目录,无论谁创建了特定文件,所有者和组成员都具有文件的读写权限?

答案1

如果系统和文件系统支持 posix-draft-type ACL,您可以执行以下操作:

setfacl -m d:g::rw ./shared

对于其中新创建的文件,将自动授予该组读+写权限,即使umask创建这些文件的进程通常不会授予这些权限。

无论如何,这并不能阻止用户随后使用chmod/删除这些权限setfacl

相关内容