2010-10-06 112 views
1

我在ubuntu 10.04下默认安装了joomla。我也改变了模板(具有读写权限的apache用户)的index.php的权限,以便我可以从管理员屏幕更改index.php。一切工作正常,直到这里。通过joomla更改文件权限

但现在当我从管理员屏幕更改文件并保存该文件时,它将更改文件权限并从文件中删除写入权限。它确实保存了更改。

现在随着写权限被删除,当我尝试安装模板时,它给了我错误。所以我必须再次手动设置index.php上apache用户的写权限并重新安装模板,然后运行良好。

有谁知道joomla是否正在更改文件权限,以及任何想法如何解决这个问题。

感谢, Tanmay

回答

2

你可能由umask设置的影响。把umask(0133);放在你的配置文件中(或者你想要的任何地方,只要确保它在制作文件之前就到了)。

背景资料:

  • r(读)具有为4的值(二进制值:100
  • w(写)具有2的值(二进制值:010
  • x (执行)的值为1(二进制值:001

这些权限可以授予所有者,组和其他人('其他')。

在PHP中创建文件时,默认情况下会将666添加到该文件中。从这个数字中,使用按位AND删除umask值。它看起来像你有一个0333的umask。显示会发生什么,最好的办法是通过展示它:

 
PHP adds: rw-rw-rw- 0666 
umask : -wx-wx-wx 0333 
result : r--r--r-- 0444 

如果你正在使用的umask 0133:

 
PHP adds: rw-rw-rw- 0666 
umask : --x-wx-wx 0133 
result : rw-r--r-- 0644 
+0

感谢Lekensteyn。我会在几分钟内尝试并更新。 – jtanmay 2010-10-06 14:39:07