【问题标题】:Write Privileges - localhost - Mac OSX写入权限 - 本地主机 - Mac OSX
【发布时间】:2011-12-23 13:41:37
【问题描述】:

我是 mac 世界的新手,刚刚设置了我的网络服务器。我使用了以下指南:https://alan.ivey.dev/posts/2011/os-x-10.7-lion-development-native-mamp-with-mysql-installer/

我已经转移了我的网站和数据库,一切进展顺利。我唯一的问题是写入权限。例如,有一个需要写入的配置文件,我必须右键单击,转到获取信息,然后为员工和每个人启用读写。

我无法手动为每个文件/文件夹启用这些写入权限。我不需要使用 WAMP 来执行此操作,并且开发速度更快。

所以想知道 2 种可能的解决方案: a) 将我的用户帐户添加到 localhost 的白名单中,这样 644 权限就足够了 b) 递归设置写权限

【问题讨论】:

    标签: php macos apache localhost privileges


    【解决方案1】:

    以上解决方案对我不起作用。我所做的是:

    右击文件夹->获取信息

    在最底部有一个特权设置。

    将其更改为 Read & Write,供所有人使用。

    【讨论】:

      【解决方案2】:

      我发现最好的解决方案是更改 apache 用户和组设置。可以在以下位置找到说明:http://paulmason.name/item/change-apache-user-group-in-lion-os-x

      1. 打开终端并进入

        sudo nano /private/etc/apache2/httpd.conf
        
      2. 中查找和更改 http.conf 代码
        User _www
        Group _www
        

        User your_mac_username
        Group staff
        

        注意:对于 Leopard 等早期版本,将 Staff 大写为 Staff。您可以通过键入“id”并在终端中输入来获取您的用户名和组

      3. 重启 Apache

        sudo apachectl restart
        

      【讨论】:

      • 最简单的解决方案!用户和 apache 都在不更改权限的情况下获得写入/读取权限 ;-)
      • 为什么将集团作为员工如此重要?我在 linux 和 mac 上工作,在 linux 上,组是用户名,但在 mac 上我必须派出员工才能使其工作,否则 Apache 将无法启动。
      • 升级到 macOS Sierra 将我在 httpd.conf 中的 UserGroup 值覆盖为 _www_www。您的回答通过将相关目录的所有者设置为这些新值的UserGroup,帮助我解决了我遇到的权限问题。
      • 效果很好。其他人请注意:每次更新都会重置此内容。
      • 成功了!谢谢。
      【解决方案3】:

      我在 OSX 上运行 Apache,这为我修复了它:

      sudo chown -R _www:_www <mywebfolder>
      sudo chmod -R 775 <mywebfolder>
      

      更新#1:

      语法:sudo chown &lt;user&gt;:&lt;group&gt; &lt;file-or-folder&gt;。 OSX 上的 Apache 用户是 _www

      保留所有权但给予 Apache r-w-x 权限:

      sudo chown -R <your-username>:_www <mywebfolder>
      sudo chmod -R 775 <mywebfolder>
      

      更新 #2:

      我最喜欢这种方法。让 Apache 像你一样运行。

      1. 在终端中输入id 以获取uid=123(Myname)

      2. 打开 /etc/apache2/httpd.conf 并编辑它以使用您的用户名。

        <IfModule unixd_module>
           User Myname
           Group staff
        </IfModule>
        
      3. 返回终端:sudo apachectl restart

      【讨论】:

      • 这导致 mamp 为我停下来。尚未找到修复程序,但它很乱。
      【解决方案4】:

      我建议为您的 Web 根递归设置写入权限。

      您可以使用chmod -R 774 /my/web/root 通过控制台/终端执行此操作。对我来说,所有者和组设置为:www-data:myUserName,可以使用chown 设置。不要忘记先检查谁是您的网络用户。

      编辑:为了更好地理解,为什么您没有访问权限:

      chmod 774,每个数字代表特定的权限:用户、组、其他。如果用户设置为www-data,组设置为www-data(Unix 系统上的大多数用户都在一个以其用户名命名的组中)。因此,如果您不在组 www-data 中,您必须加入它,或者您必须更改所有者 (chown) 或者您必须更改权限 (chmod)。那里有几个教程,以获取更多信息。

      【讨论】:

      • 我刚刚为我的一个网站尝试了chmod -R 774,但它使整个网站被禁止,直到我使用chmod -R 777 这似乎不正确。有任何想法吗?另外我不知道如何检查我的网络用户是谁,你能解释一下吗?
      • 您还必须检查文件的所有者(用户 ls -l 为此)。大多数文件夹设置为www-data:www-data。这意味着,在您使用chmod 777 之前,您没有被提及并且您无权访问。最后 7 代表“其他”。只需按照我在回答中提到的设置所有者即可。我将编辑我的答案以进一步解释。
      【解决方案5】:

      我是上述博文的作者。对于 Web 服务器文件权限,您需要向 _www 用户授予文件的写入权限。对于 config.inc.php,您可以通过以下几种方式进行设置:

      让 _www 拥有该文件并拥有写入权限:

      $ sudo chown _www config.inc.php
      $ chmod u+w config.inc.php
      

      让您的用户拥有该文件,将组更改为 _www,并授予组写入权限:

      $ sudo chgrp _www config.inc.php
      $ chmod g+w config.inc.php
      

      或者,如果您愿意允许所有用户编写(出于安全原因我不建议这样做),请允许所有用户编写:

      $ chmod a+w config.inc.php
      

      如果需要_www用户写入整个文件夹,它可以拥有该文件夹和所有文件:

      $ sudo chown -R _www:_www folder/
      

      或者您可以授予文件夹写入和执行权限:

      $ chmod a+wx folder/
      

      chmod 774 之所以给你禁止错误是因为 _www 用户属于“4”权限,即“只读”。对于目录,用户需要“执行”才能遍历文件夹。 chmod 775 将允许用户和组 rwx,而其他人则 r-x。 Here's more information on Unix file permissions.

      此外,您的用户可以保留完全所有权并为 _www 用户添加某些权限,而不是使用访问控制列表更改所有用户的访问级别。

      $ sudo chmod -R +a '_www allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' folder
      $ sudo chmod +a '_www allow read,write' config.inc.php
      

      如果您打算采用 ACL 的路线,我建议您多阅读一些资料,以了解您真正需要提供哪些级别的访问权限。 Here is a great place to start.

      【讨论】:

      • 感谢您迄今为止的所有帮助。只是想知道为什么我要更改 config.inc.php 的所有者以及在哪里可以找到它?
      • @alanthing 授予 apache 在您的机器上写入(任何?)文件的权限会不会有风险?
      猜你喜欢
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多