我设置了一个新的 Ubuntu 12.04 实例。当然,它有 root 用户。我运行了 apache,它有自己的用户和组,我还创建了一个 ftp 用户(它有自己的用户和组)。我还创建了一个新组,我认为我已经设置了它来包含 apache 和 ftp 用户来上传/创建/管理文件。
所以现在,在我的网络根目录中以及关于用户和组,我有如下内容:
-rw-r--r-- 1 root www-pub 22 Jul 30 06:21 index.html
drwxr-sr-x 5 www-data www-data 4096 Jul 30 06:26 test
drwxr-sr-x 8 ftpacct www-data 4096 Jul 30 06:03 stuff
index.html 由 root 创建(通过 ssh),test dir 由 apache 创建,stuff dir 由 ftp 用户创建。
(此外,www-data 和 ftpacct 都属于 www-pub 组。)
我的问题:如果某个文件或目录归 apache (www-data) 所有,则 ftp 用户 (ftpacct) 无法对其进行修改,反之亦然。我可以为元素赋予 775 个权限,然后它就可以编辑了,因为所有用户都属于同一组,但这似乎不安全(也许不是?我觉得超过 755 就不是个好主意)。
那么解决方案是什么?如何才能让 ftpacct 上传的文件可以被用户 www-data 修改,并且该用户创建的文件也可以被 ftpacct 修改?或者我甚至应该这样想吗?
我可以这样做吗?或者这个权限设置不是最好的方法?
答案1
775 是可以的,它只是意味着它是组可写/可 cd 且世界可读/可 cd 的。
看起来您已经执行了 chown user.sharedgroup 和 chmod g+s,其中进行写入以确保在那里创建的文件归公共组所有。
如果经过深思熟虑、理解并记录在案,这样的权限是可以接受的。我认为您的设置没有任何问题。