我正在专用服务器上运行多个网站,并且我的许多网站都要求某些目录的权限设置为777.我知道这是一个重大的安全问题,我也知道可以configuration这些东西,因此您不必在目录上使用777,我只是不知道这样做。 有人能指出我正确的方向,所以我可以东西没有777目录function?
谢谢!
几年前当我发现unix ACL时,他们让我感到惊讶! 他们如何不是常识,这也是惊人的。
简而言之,它们允许您设置扩展文件权限,超出简单用户+组+其他经典文档。
你需要的两个命令是“ setfacl ”和“ getfacl ”。 如果它抱怨“ mount -o remount,rw,acl / ” ,则可能需要使用acl支持重新安装fs。
我使用setfacl的两种常用方法是:
setfacl -R -mu:apache:rwx /var/www/mydirectory setfacl -R -d -mu:apache:rwx /var/www/mydirectory
第一行recursivley将rwx权限添加到给定path中的所有内容(在已有的权限之上)。 第二个命令使新文件和目录的默认策略自动为apache用户使用rwx。
这比用suPHP或组权限等搞乱要快得多
既然你在控制服务器,你可以考虑通过suPHP来运行PHP。 PHP进程是为不同的用户而产生的。 这样,您的目录可以被chmodded到0700,拥有进程正在运行的用户的所有权。
PS:在serverfault上看到你。 我投了票。
如果你必须将事情设置为777,这意味着你有一些所有权问题。
一般来说,只有三组用户需要担心:
通常情况下,您应该能够将文件和目录的所有权设置为进行设置的实际用户,并将组成员身份设置为Web服务器的组成员资格。 如果你这样做的话,那么你可以在所有者上设置rwx的权限,而对于apache组,rx可以设置权限。 你的应用笔记应该是非常具体的应用程序需要写访问什么目录。 (如果不是,则可能是以其他方式松散地写入,可能是安全漏洞。)
如果你做得正确,那么“其他人”(即“作为服务器上不是networking服务器组成员的用户的所有人”)可以将其权限设置为0(即不读,不写,不写-EX)。
例如,我的WordPress安装是由我安装的,但由networking服务器运行,所以一切都是一般权限750,所有权的戴夫:阿帕奇。 wordpress存储传入上传的目录被设置为权限770,所有权dave:apache。