如何在linux文件夹中设置默认组权限

如何在linux文件夹中设置默认组权限

我有一个网站文件夹叫做

/home/john/public_html

现在我想要的是,无论将哪些文件复制到 public_html 或在该文件夹内创建的新文件,这些文件都应该具有 john 的默认读/写权限,无论该文件的所有者是谁。

另外,我将通过 FTP 复制/创建文件/目录,该系统是否也能在那里工作,或者使用 ftp 的文件是否没有组读/写权限

我的意思是 umask 只适用于在 shell 内创建/复制的文件,甚至也适用于在 shell 外部创建/复制的文件

答案1

您可以使用 ACL 实现此目的。有关详细信息,请参阅 setfacl/getfacl 的手册页。

不幸的是语法有点复杂。尝试如下方法:

setfacl -s u::rwx,g::r-x,o::r-x,m:rwx,u:john:rwx,d:u:john:rwx /home/john/public_html

嗯,umask 仍然适用于新创建的文件,但你也可以使用 ACL“覆盖”umask:

setfacl -s u::rwx,g::r-x,o::r-x,m:rwx,u:john:rwx,d:u:john:rwx,d:u::rwx,d:g::r-x,d:o::r-x,d:m:rwx /home/john/public_html

答案2

我不太清楚您想要完成什么,但看起来可以通过组权限和目录上的 setgid 位来解决。

chown john.john-contrib /home/john/public_html
chmod 2775 /home/john/public_html

然后当人们创建文件时,它们将归 'john-contrib' 组所有。不过每个人都需要成为 john-contrib 的成员才能将文件放入 John 的目录中。

如果您确实希望每个人都能始终写入 John 的目录而不受任何安全控制……那么 chmod 2777 就可以工作,但这是 /home 文件系统的一个疯狂的小应用。

答案3

如果您是服务器上的 root 用户,您无疑可以配置 FTP 服务器以设置上传文件的特定权限。要使移动到 public_html 的任何文件都获得 john 的 r/w 权限又是另一回事。也许您可以编写一个脚本来更改 public_html 中所有文件的组。然后确保脚本每 1 秒循环一次或类似时间。我不认为这是一种好方法,但我也想不出其他方法了……

相关内容