3个用户,1个文件夹。 用户:vsftpd(FTP服务器),bobmarley(普通用户),www-data(Apache用户)
如何统一它们,使每个用户可以修改这些用户的任何数据,而不用做CHMOD 777?
例如:bobmarley创build了一个文件'settings.inc.php'www-data试图访问该文件,并成功。 vsftpd用户访问该文件,也可以修改它。
创build一个组( groupadd )…该目录的chgrp到新组…然后将每个用户添加到该组。 这是最简单的方法。 您可能还需要在目录上修改chmod g+s ,以确保使用与父目录相同的组创build新文件。
tadaa!
groupadd webapp usermod -a -G webapp vsftpd (but I think it should be nobody) usermod -a -G webapp bobmarley usermod -a -G webapp www-data chgrp -R webapp /path/to/folder chmod -R g+w /path/to/folder
如果此文件夹中有现有数据,则可以使用以下命令为所有子文件夹设置SGID:
find /path/to/folder -type d -print0 | xargs -0 chmod g+s /path/to/folder
请记住将vsftpd,Apache和bobmarley的umask设置为002.通过此configuration,任何用户创build的所有文件都具有664权限,由webapp组拥有,其他用户可以修改。
把他们放在一个共同的小组。 将文件chgrp该组。 将文件/目录chmod改为664/775。
分组他们。 这就是POSIX中有组的原因。 创build一个xyz组,并把vsftpd,bobmarley和www-data放进去。
然后使用chgrp将该组分配给文件夹/文件。