如何为本地(apache)服务器设置正确的访问权限?

时间:2014-04-30 12:30:54

标签: apache joomla

我在笔记本电脑上运行apache服务器(macbook pro osx 10.9.2)用于Web开发。当我安装一个Joomla示例Web应用程序并尝试一些功能(比如通过joomla管理员更改字体设置)时,我收到大量错误消息,表明它无法写入某些子文件夹。当我手动更改“每个人”的权利时。阅读& amp;写'对于与mac文件管理器相关的子文件夹,问题解决了。但我不认为这是正确的解决方案(每个人都可以访问)和优雅的解决方案(以避免我会为所有子文件夹做错误消息)。

如何以正确的方式设置访问权限?例如我应该向哪个实体分配什么样的访问权限(正如您所看到的那样,我并不熟悉这些安全问题)。如果我使用mac终端应用程序,那么正确的命令是什么?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

嘿有mac用户(':

打开终端并查看chmod命令。

使用chmod命令,您可以更改文件夹和子文件夹的权限。

查看Chmod tutorial

例如:

chmod -R ugo
u=permission for user that owns the file
g=permission for groups that own the file
o=permissions for others
4=read
2=write
1=execute

u=4 -> owner can read but cannot write or execute
u=4 & g=3 -> owner can read | groups that own the file can write and execute but not read from it


// This wil give all users read and write permissions.
chmod -R 666 joomla/

答案 1 :(得分:0)

如果您使用的是Mac OS X附带的内置Apache,则Apache运行的默认用户与文件的所有权之间会发生冲突。 Apache可以访问它们,也可以阅读&写下它们但不能同时写两个。

例如,如果我在ls -al到我的主目录后在终端中发出cd,我可以看到~/Sites目录具有这些权限和所有权:

drwxr-xr-x+  18 cppl   staff    612  6 Apr 09:32 Sites

默认情况下,虽然Apache在_www组中以_www运行。

因此,您需要将用户添加到_www组或以用户身份运行Apache。

如果您将自己添加到_www群组,您仍然会使用该文件&目录权限。

如果您更改httpd.conf以便Apache以您的用户身份运行,则需要查找并更改此部分:

#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User _www
Group _www

具体而言,您需要将User行设置为短用户名,例如对我而言cppl通常你会想要将组设置为staff,这是我猜Mac OS X上用户的默认值。例如

User cppl
Group staff

当然,如果您这样做,您应该可以通过防火墙限制访问Apache到localhost或您的专用网络(不包括路由器)。