在Ubuntu的权限

我刚安装了Ubuntu和LAMPP。 对于这一切我都很新,所以对我很感兴趣。 我已经安装LAMPP到/ opt / lampp

我的/ opt / lampp / htdocs文件夹是http:// localhost指向的地方。 在过去的一个小时里,我无法写在那个目录中。 我终于做了sudo chown rondog /opt/lampp/htdocs ,现在我不能写了。 (rondog是我,机器上唯一真正的“用户”)

当我运行我的一个PHP脚本时,当我尝试调用一个fopen方法时,我得到一个权限被拒绝的错误。 我需要做什么,我可以写入这个文件夹以及PHP可以执行诸如fopen和fwrite之类的命令? 谢谢

一种可能性是将Apache用户和组设置为rondog 。 这样,您和服务器始终可以使用创build的文件夹和文件。 它可以做到如下:

编辑(或创build,如果它不存在) /etc/apache2/httpd.conf并添加以下行:

 User rondog Group rondog 

保存该文件并重新启动服务器:

 $ sudo /etc/init.d/apache2 restart 

无论何时使用,都应该popup新添加的用户:

 $ ps aux | grep apache 

一个build议,但请保持您的本地主机文件在您的主目录。 如果你想要一个新的Ubuntu版本的干净更新,如果你将个人文档保存在你的主目录中,切换起来会容易得多。 而且,在这种情况下,每次创build新文件夹时都不必使用sudo chown命令。

你有几个select在这里。 你要么做Tim H的build议:

 chmod -R 777 

这将为每个人设置读写权限。

但通常这太宽泛了。 您也可以创build一个新的组,将自己和Web服务器用户放在里面,只允许你两个人访问和写入文件:

 $ sudo -i # addgroup lamppusers # adduser rondog lamppusers # adduser www-data lamppusers # check, that www-data is the correct user # chown -R :lamppusers /opt/lampp/htdocs # chmod g+srwx /opt/lampp/htdocs 

如果您不确定,如果www-data是正确的LAMPP用户,请发出

 cat /etc/passwd 

并寻找一条线,看起来像是LAMPP使用的用户。 否则,如果您之前已经安装了chmod 777,请使用ls -l查看PHP生成的文件,以查看它们属于哪个人。

g+srwx是写入777访问权限的另一种方式,但是另外设置了粘性位 。

最后,如果你需要更多的细粒度的访问权限,谷歌的文件访问控制列表(ACL)。 它们允许在每个用户的基础上定义访问权限。

你有没有尝试过

 chmod -R 0777 /opt/lampp/htdocs