Apache Webserver - 如何写入dir / files,权限设置为755而不是777

时间:2009-07-20 18:42:57

标签: linux apache file permissions

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

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

但根据我在第三方托管解决方案方面的经验,我通常可以写入拥有755权限的文件和目录。

我可以在本地主机上执行哪些操作,以便可以使用755权限写入文件和目录?如果答案很长,有人可以给我一个分步指南的链接吗?

3 个答案:

答案 0 :(得分:16)

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

  1. 所有内容都应该是chown'd& chgrp给apache运行的同一个用户。在新的ubuntu安装中,用户和组都是“www-data”。
  2. 如果要管理自己用户组下的服务文件,则应将自己添加到www-data组,并确保该组中的用户具有对所有服务文件和目录的读/写访问权限。这里需要注意的是,您要确保不要将新文件创建为个人帐户。这些应该仍然由www-data拥有。完成此操作的最简单方法是自己创建文件,然后将其添加到www-data:www-data。
  3. 如果您执行这两项操作,那么您应该能够写入由apache提供服务的文件。我不确定你的文档根目录在哪里,但是这样的东西可能适用于大多数简单的安装:

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

答案 1 :(得分: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命令来获得所需的结果。

答案 2 :(得分:0)

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

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