2009-07-20 121 views
4

我刚刚学会在我的ubuntu linux localhost上首次安装Apache 2。我正在使用PHP5。Apache Webserver - 如何写权限设置为755而不是777

我注意到,无论何时我想写入文件或目录,我都必须chmod 777目的地。

但是从我的第三方托管解决方案的工作经验来看,我通常可以写入具有755权限的文件和目录。

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

回答

4

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

的权限是:

业主群大家

rwx-rwx-rwx 

i.e. 111 = 7 which allows read/write and execute. 
101 = 5 which is just read and execute 

你不能在用户因为你的记录写入该文件不具有访问所有者/组的一部分文件。

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

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

0

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

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

16

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

  1. 的所有内容应chown'd & chgrp'd到apache的运行相同的用户。在新的Ubuntu安装中,用户和组都是“www-data”。
  2. 如果您想管理您自己的用户组下的服务文件,那么您应该将自己添加到www-data组,并确保此组中的用户对所有服务文件和目录具有读/写访问权限。这里需要注意的是,您要确保不要创建新文件作为您的个人帐户。这些应该仍然由www-data拥有。最简单的方法是将文件创建为你自己,然后将其文件命名为www-data:www-data。

如果你做了这两件事,那么你应该可以写入由Apache服务的文件。我不确定您的文档根目录在哪里,但类似这样的内容可能适用于最简单的安装:

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