我在跑步Ubuntu 16.04。
我有几个用户www-数据组并将在服务器上创建/修改文件。
我们会打电话给他们用户1和用户2。
任何时候用户1或者用户2创建一个文件夹或文件,/var/www/sites/domain1.com/public
我希望其所有者和组默认为www-数据。我希望文件具有以下权限0664以及要具有权限的文件夹0775。
假设 user1 登录并创建了一个名为test-file.txt
如果我运行:
ls -l on /var/www/sites/domain1.com/public
我希望输出看起来像这样:
-rw-rw-r-- www-data www-data test-file.txt
我相信这可以通过来完成setfacl
,但不太确定命令是什么或者是否有更好的方法。
答案1
更改目录权限0775到2775会满足你的大部分要求。2方法设置组 ID当在目录上使用时意味着在该目录内创建的新对象将继承目录的组,而不是获取创建该对象的进程的当前组。
如果目录尚未由组拥有www-数据您需要先更改组,然后才能更改权限。
此外,你还需要确保每个用户的 umask0002. 这是默认值,所以除非用户进行了更改,否则它已经具有正确的值。
执行上述操作涵盖了您要求的所有内容,除了更改文件所有者。我还没有遇到过这种差异很重要的使用场景,并且让文件所有者指示谁创建了文件可能会很有用。
一个完全不同的方法是使用源代码控制系统并创建一个从源代码控制推送文件更新的程序。当多个人需要更新同一个文件时,使用源代码控制会有很大帮助。