问题就在这里。我的一个客户使用 Mac OSX Snow Leopard 作为他的 Web 服务器。他有多个客户和网站等。他还有多个访问该系统的设计师。
他已将某个用户锁定在某些目录(仅供他工作的网站)。当该用户上传文件时,我的客户端必须进入根目录将所有者设置为 _www,这样 Apache 才有权运行这些文件。
他想知道的是,无需不断地在用户身后传播文件权限。在 Windows 中,他只需使用 Filezilla 即可,因为用户未集成到操作系统中。
有什么想法可以实现这一点吗?
答案1
设置目录的组权限为SGID( chmod g+s dirname
),则每个新建文件或子目录都会继承其组为_www。
但是您必须对每个现有子目录执行此操作,因为 SGID 位不会传播到已经存在的子目录。
chgrp -R _www path/to/userdir
find /path/to/userdir -type d -print0 | xargs -0 chmod g+s
答案2
我手边没有 Mac 系统可以验证,但是...
在 Linux 中,我会在目录上使用 SGID 位,并将目录组设为 Apache 在其下运行的组。在该目录中创建的所有文件都将自动将该组设置为目录组,因此 Apache 可以读取这些文件。无需更改权限。