所以这是问题。 我的一个客户使用Mac OSX Snow Leopard作为他的networking服务器。 他有多个客户,站点等。他也有多个devise人员访问系统。
他有一个用户,他locking了某些目录(只适用于他的网站)。 当用户上传他的文件时,我的客户端必须以root的身份将所有者设置为_www,以便Apache有权限运行这些文件。
他想知道的是不需要不断地在用户后面传播文件的权限。 在Windows中,他只是使用Filezilla,因为用户没有集成到操作系统中。
任何想法如何做到这一点?
将目录的组权限设置为SGID( chmod g+s dirname ),每个新创build的文件或子目录的组将被inheritance为_www。
但是您必须为每个现有子目录执行此操作,因为SGID位不会传播到已经存在的子目录。
chgrp -R _www path/to/userdir find /path/to/userdir -type d -print0 | xargs -0 chmod g+s
我没有一个mac系统方便validation,但…
在Linux中,我将使用目录上的SGID位,并使目录组成为Apache运行的组。 在该目录中创build的所有文件都将自动设置为目录组,因此Apache将可以读取该文件。 不涉及更改权限。