写入权限 - localhost - Mac OSX

33 浏览
0 Comments

写入权限 - localhost - Mac OSX

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

我已经转移了我的网站和数据库,一切都进行得很顺利。我唯一的问题就是写入权限。例如,有一个需要写入的配置文件,我不得不右键单击,进入“获取信息”,然后为staff和everyone启用读写权限。

我不能手动为每个文件/文件夹启用这些写入权限。在使用WAMP时我不需要这样做,这使得开发更加快速。

因此想知道两个可能的解决方案:

a) 将我的用户帐户添加到localhost的白名单中,使644权限足够

b) 递归地设置写入权限

admin 更改状态以发布 2023年5月20日
0
0 Comments

我是提到的博客文章的作者。对于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。 这里提供有关Unix文件权限的更多信息

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

$ 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

如果您要采用 ACLs 的方式,请做一些更多的阅读,以查看您确实需要提供哪些访问级别。 这是一个很好的起点

0
0 Comments

我发现最好的解决方案是改变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需要大写。您可以在终端中输入“id”并按下回车键,以获取您的用户名和组

  3. 重启Apache

    sudo apachectl restart
    

0