【问题标题】:How to grant both Git and Apache permissions to /var/www如何将 Git 和 Apache 权限授予 /var/www
【发布时间】:2019-02-02 21:01:57
【问题描述】:

我正在尝试安装 wp-deploy。重新安装 Mint 3 后 几次,我的愤怒几乎烧毁了我的房子,我无法为 我的生活弄清楚我应该如何给予/var/www 权利 权限。

如果 git 尝试写入将被拒绝的权限,我将获得拒绝权限 capistrano/wp-deploy 经常发生。

但是如果我chown这个目录我会破坏apache。

drwxrwxr-x 2 www-data wwwwww 所在的当前权限 一群。一些教程告诉我要包含 www-data 用户 和另一个用户,但它似乎并没有改变行为。我有 在www-data:rootwww-data:www-data 也有这个 相同的行为。

更新:还是一团糟,更新后发现了一些错误。我可能很快就会回来提供更多信息。感谢您的帮助。

【问题讨论】:

  • 由于此问题与编程无关,请在serverfault.com 发布您的下一个问题。

标签: git permissions capistrano lamp


【解决方案1】:

一些教程告诉我要包含 www-data 用户和另一个用户,但它似乎并没有改变行为。

这是执行此操作的常用方法:如果多个用户需要访问一个目录,则创建一个组,授予该组对该目录的所有权并设置该组的权限。之后,所有需要访问该目录的用户都被添加到该组中。 但请注意,组成员身份更改通常仅在用户下次登录后才会生效。也就是说,如果用户在添加到组时仍处于登录状态,则用户不会注意到更改,直到下次登录。

鉴于已经有一个www 组,您只需要检查权限是否正确,然后使用usermod 将Git 用户(我们称之为gituser)添加到www 组:

sudo usermod -a -G www gituser

标志-a 将给定组附加到用户的现有组列表中。 -G 采用逗号分隔的用户组列表。

【讨论】:

  • 感谢您的详细回复。当我今天早上醒来并看到它时,我意识到当我关闭计算机并重新登录 lololol fml 时,我的一半错误在晚上消失了。
【解决方案2】:

您想分离权限。除非特别需要(并且无法从 Web 访问),否则授予 Apache 对目录的写访问权限通常是一个坏主意。

chown 文件给 git 用户,chgrp 组给 www(应该已经这样了) 确保www-data用户是wwwgroups www-data的成员,如果没有添加usermod -g www www-data并重启apache服务。

/var/www 及其下所有目录 的权限设置为“755”。 导致drwxr-xr-x

/var/www 下的所有文件及其子目录文件的文件 权限设置为“644”。导致-rw-r--r--

find /var/www -f -exec chmod 644 {} \;

【讨论】:

  • 所以我已经按照这些说明进行操作,git 可以编写并且 wordpress 可以使用,但是 wordpress 无法写入它自己的目录。据我了解,wordpress 只需要它拥有的 www-data 权限。目前,所有目录都被递归地分配并赋予 www-data:www,其中 www 是包含我的用户和 www-data 的组。他们也有 755(我不知道如何仅对文件进行 644 处理,但我的理解是这不应该与我收到的错误有关,而是一种安全措施,如果我错了,请纠正我。)有什么想法吗?
  • @JeremyDixon,WP 的基本安装通常不需要更多权限。一些插件和一些配置选项确实需要可写目录。它们都位于 wp-content 下,将这些目录更改为 775。
猜你喜欢
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 2011-09-01
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多