Apache Web服务器 – 如何写权限设置为755而不是777的目录/文件

我刚学会了第一次在我的ubuntu linux localhost上安装Apache 2。 我正在使用PHP5。

我注意到,任何时候我想要写入一个文件或目录,我必须chmod 777的目的地。

但从我的第三方托pipe解决scheme的经验,我通常被允许写入有755权限的文件和目录。

我可以在我的本地主机上做什么,以便我可以用755的权限写入文件和目录? 如果这个答案很长,有人可以给我一个链接,一步一步的指导来做到这一点?

您可能无法实现此目的,因为文件的所有者与尝试对文件执行操作的用户不同。

权限是:

所有者组,每个人都

rwx-rwx-rwx ie 111 = 7 which allows read/write and execute. 101 = 5 which is just read and execute 

您无法写入文件,因为您登录的用户不是可以访问该文件的所有者/组的一部分。

最后的7(即rwx-rwx-111(7))意味着在全球范围内,每个人都可以读写该文件。

如何解决这个问题
在Linux中,您可以使用chown或chgrp命令来实现您想要的结果。

下面是一些网站内容管理(在Apache下)的一些简单的规则,大多数人应该遵循:

  1. 所有的内容都应该和apache运行的用户一样chown。 在新的Ubuntu安装中,用户和组都是“www-data”。
  2. 如果要在自己的用户组下管理服务文件,则应将自己添加到www-data组中,并确保此组中的用户对所有服务文件和目录具有读/写访问权限。 这里的警告是,你要确保不要创建新的文件作为你的个人帐户。 这些仍然应该由万维网数据拥有。 最简单的方法是将文件创建为自己的文件,然后将其更改为www-data:www-data。

如果你做了这两件事,那么你应该能够写入由Apache服务的文件。 我不确定你的文档根目录是什么,但是像这样的东西可能适用于最简单的安装:

 $ sudo usermod $USER -a -G www-data $ cd /var/www $ sudo chown -R www-data:www-data . 

首先,您将需要找出您的PHP代码正在运行的用户。 如果使用mod_php5 (软件包名称libapache2-mod-php5 )和Apache一起运行“worker”或“prefork”MPM,则可能是www-data

只要您只在服务器中运行一个Web应用程序,这不是什么大问题。 但是,如果您运行多个应用程序(或由多个用户拥有的脚本),则可以设置各种与安全有关的“乐趣”。