拥有/var/www/site.com的www-data:www-data拥有750个目录权限和640个文件权限,并且我的用户alexb被添加到www-data组中,当我试图将新版本(git pull)拖到测试环境中时,我发现自己遇到了权限问题。
因此,现在,我想到的唯一解决办法是:
alexb:www-data对/var/www/site.com的所有权www-data:www-data,和一个750和640个权限布局。/var/www/site.com的所有权分配给他们,并使用初始的750个和640个权限布局,这样当我需要运行shell操作(例如git pull)时,我只需切换用户并执行它。现在,问题是:
发布于 2014-08-12 10:26:56
拥有www-data拥有的/var/www/site.com
如果www-data也是you服务器运行的uid,那么您有一个非常不安全的系统。The服务器应该只具有读取访问权限(并对目录执行)。如果您确实需要允许webserver写入数据,那么这个目录应该被围起来--最好是在文档根目录之外。
如果alexb是唯一需要写访问的帐户,那么“alexb:www-拥有/var/www/site.com与750和640相同的数据所有权”是一种合理的方法。但是,如果您有多个需要写访问的用户,那么最好的解决方案可能是创建一个具有该访问权限的新组,允许who服务器以“other”的形式读取访问权限(775/664),但请记住对用户进行近似设置(并启用目录上的setgid位(2775) )。
发布于 2014-08-11 19:47:32
文件夹中的xx4更像是有xx0,因为“其他人”无法看到该目录的内容。他们会看到文件夹,但不能用它做任何事情。
由于web服务器可能不需要写权限,所以我将使用alexb:www-data和750 (目录)和640 (文件),因为这样可以降低web服务器的权限,但可以让您使用个人用户而不必担心太多。
除此之外,您还应该设置所有文件夹的g+s权限,因此即使在以用户alexb的身份创建文件的情况下,web服务器仍然可以通过组权限进行访问(我假设您的用户alexb没有将www-data作为主要组,因此使用该权限将使组id通过新的文件保持不变)。
只需记住精确地设置UMASK (如027),不要将/var/www/site.com用作用户的主目录。
此外,还要考虑像SELinux (RedHat、CentOS等)这样的安全系统。
发布于 2014-08-12 16:08:59
您错过了ACL的选项。Linux有一个非常灵活的ACL系统,这是大多数人不考虑的。不久前我写了一篇关于这件事的博文:
http://bryan.ravensight.org/2010/01/linux-acl-management-functions/
我通常将所有权和组设置为shell用户,以及任何需要更新这些文件的交互式用户组。
然后,我使用我的格兰特-阿帕奇-读脚本允许Then服务器访问它:
source ~/lib/acl.bash; grantUserRead 'www-data' /var/www/site.come '*';在尝试时,您需要记住两件事:
https://security.stackexchange.com/questions/65166
复制相似问题