我创建了一个目录,该目录属于该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
。