【问题标题】:How make /var/www contents editable by IDE如何使 /var/www 内容可被 IDE 编辑
【发布时间】:2013-08-16 04:56:38
【问题描述】:

我按照link 更改组/用户权限以将我自己添加到 www-data 组 但我仍然无法编辑 /var/www 中的内容,特别是上传的内容。

这是我的开发环境,我不想每次上传都去chmod /var/www/。

在将内容保存在 /var/www 下的同时,更改 /var/www 目录权限以能够直接从 IDE 编辑内容的步骤是什么

我的登录帐户用户和组名是debianaut:

 groups www-data
 www-data : www-data debianaut

 groups debianaut
 debianaut : debianaut www-data

我在进行这些更改后登录/退出。似乎很简单,如果我是 cretain 组的用户,我应该获得他们拥有的任何权限。

请帮忙解决这个问题

【问题讨论】:

  • 上传文件的权限是什么?
  • 这些文件是通过 FTP 上传的吗?
  • 不通过网络浏览器,例如 joomla 组件安装
  • 我猜你必须在 joomla 设置中更改默认文件掩码(对于上传的文件)。
  • @soulreaver 请详细说明一下,哪个设置和来自哪里?

标签: linux apache permissions


【解决方案1】:

我怀疑您的问题是用户帐户具有多个组,并且默认组不是对该文件夹具有写入权限的组。

虽然 Linux 允许您的用户访问多个组,但它不会同时提供对所有组的访问。以下是解决此问题的一些选项:

  • 更改在 shell 中运行时使用的组
  • 更改用户的默认登录组
  • 使用 ACL

Shell 中的新组

为了在启动 shell 后以不同的用户身份操作,请使用newgrp。

更改默认组

要更改用户的默认组,请编辑/etc/passwd,或使用命令来完成工作(不确定是哪个命令,并且可能因发行版而异)。

ACL

您可能更喜欢使用 ACL。请参阅 setfacl 和 getfacl 的手册页。 ACL(访问控制列表)是扩展权限。并非所有 Linux 系统都支持它们,但如果您的 Debian 系统不支持,我会感到惊讶。下面应该为所有/var/www添加用户debianaut的读写执行权限:

setfacl -R -m u:debianaut:rwx /var/www

顺便说一句,您可以检查正在运行的进程(例如您的 IDE)的组 ID,使用 ps -o gid -p <pid>。

继承 ACL

按照here 的帖子,可以找到继承 ACL 的答案。

答案在手册页中称为default ACL。以下将 denianaut 的 ACL 设置为 /var/www 中创建的文件的默认值:

setfacl -R -d -m u:debianaut:rwx /var/www

【讨论】:

  • 我检查了 ACL 的东西,看起来很有希望
  • 我不喜欢 ACL 的唯一一点是它们是一个扩展,因此如果您忘记它们正在使用它们可能会造成混淆。否则,在我看来,它们是解决此类问题的好方法。
  • 它似乎没有像我预期的那样工作,例如当我通过 php+apache 上传文件时,它由 www-data:www-data 所有,所以我无法从 IDE 编辑该文件。我尝试了 ACL 的东西,我似乎每次上传新文件时都运行了这个命令,这是我不想要的。
  • drwxr-sr-x 5 www-data www-data 4096 Sep 6 22:21 mod_* 上传导演的文件权限
  • -rw-r--r-- 1 www-data www-data 418 Sep 6 22:21 style.css 对该目录中文件的权限
【解决方案2】:

我认为您应该将您的umask 更改为 0002:

umask 0002

This 也可能有用。

【讨论】:

  • 仅仅因为简单的权限问题而更改整个系统的 umask 在我看来并不是一个好的解决方案。
  • 这会是什么安全问题吗?
  • 您只能为一个用户更改 umask。例如,将其放入~/.bashrc 脚本中。
  • 您应该只为写入文件的进程设置 umask。在 joomla 的情况下,这是运行 mod_php 的 apache。将umask(0002); 放在您的joomla configuration.php 中的某个位置。
【解决方案3】:

对我来说,问题与 joomla 配置有关。您需要更改上传文件的默认权限。此链接可能对您有所帮助:http://forum.joomla.org/viewtopic.php?t=286584

【讨论】:

  • j3.1 这种权限设置没有运气,我认为它已被删除,因为可能存在安全问题
  • 然后检查是否有 /etc/suphp.conf 或 /etc/suphp/suphp.conf 文件。如果是这样,请将那里的 umask 值更改为 0022。
【解决方案4】:

有两个相对简单的选项,它们都不应该涉及 www-data —— 你不希望网络服务器对你的内容有不必要的写入权限。

1) 只需将 /var/www 的 ownershop 作为您将编辑文件的用户 ID。

2) 建立一个新组,使其成为您的辅助组之一,然后使 /var/www group-writable + setgid (chmod g+s) 成为该新组。 setgid 目录中的新文件将其组设置为共享组。

【讨论】:

  • “不必要”在这里是次要的,我需要知道如何用简单的语言一步一步地实现。如果我是某个团体的成员,为什么我没有获得相同的权利,如果不是如何获得这些权利。请用实际命令详细说明您的答案
  • “如果我是某个组的成员,为什么我没有获得相同的权限” 您从未展示过具有分配给 www-data 的任何特殊权限的单个文件或目录。但是,www-data 不应该有特殊的权利。我不知道你为什么认为这是次要的事情。
猜你喜欢
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多