替代拥有777权限的目录

我正在专用服务器上运行多个网站,并且我的许多网站都要求某些目录的权限设置为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应用程序的实际用户;
  • Web服务器(可能是PHP)运行的uid; 和
  • 其他所有人。

通常情况下,您应该能够将文件和目录的所有权设置为进行设置的实际用户,并将组成员身份设置为Web服务器的组成员资格。 如果你这样做的话,那么你可以在所有者上设置rwx的权限,而对于apache组,rx可以设置权限。 你的应用笔记应该是非常具体的应用程序需要写访问什么目录。 (如果不是,则可能是以其他方式松散地写入,可能是安全漏洞。)

如果你做得正确,那么“其他人”(即“作为服务器上不是networking服务器组成员的用户的所有人”)可以将其权限设置为0(即不读,不写,不写-EX)。

例如,我的WordPress安装是由我安装的,但由networking服务器运行,所以一切都是一般权限750,所有权的戴夫:阿帕奇。 wordpress存储传入上传的目录被设置为权限770,所有权dave:apache。