写入权限 - 本地主机 - Mac OSX

2022-08-30 16:16:43

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

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

我无法手动完成并为每个文件/文件夹启用这些写入权限。我不需要使用WAMP来做到这一点,并且使开发速度更快。

因此,想知道2种可能的解决方案:a)将我的用户帐户添加到本地主机的白名单中,以便644权限就足够了b)以递归方式设置写入权限


答案 1

我发现最好的解决方案是更改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
    

答案 2

我是上述博客文章的作者。对于 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/

之所以给你禁止的错误,是因为_www用户属于“4”权限,即“只读”。对于目录,用户需要“执行”才能遍历到文件夹。 将允许用户和组进行 rwx,并允许其他人使用 r-x。以下是有关 Unix 文件权限的更多信息chmod 774chmod 775

此外,您的用户可以保留完全所有权并为_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 的路线,我建议您多读一些书,看看您真正需要提供哪些级别的访问。这是一个很好的起点


推荐