2013-08-20 60 views
2

我不能相信这(最后一个红色框): http://ellislab.com/codeigniter/user-guide/general/caching.html笨缓存文件夹的权限777

注:缓存文件可以写之前,你必须设置文件,您的应用程序/缓存文件夹 权限这样它就是可写

在欢迎页面:

$this->output->cache(60); 

笨要求我们到一个文件夹的权限设置为777我测试775或755没有工作。只有777的工作。这意味着每个人都可以阅读文件夹的内容,上传php文件并执行它。为什么codeigniter会提出这种不安全的方式?


更新:

这些权限不起作用:

ll 
    drwxr-xr-x 2 besime besime 4096 Aug 20 17:46 cache/ 
ll 
    drwxr-xr-x 15 besime besime 4096 Jun 14 11:11 application/ 
ll 
    drwxr-xr-x 4 besime besime 4096 Aug 3 12:08 CodeIgniter/ 

,直到我改变高速缓存:

drwxrwxrwx 2 besime besime 4096 Aug 20 17:46 cache/ 

然后,我可以看到在缓存文件夹中创建的文件b082457291d5cfcb6fb76fda5b43f60a打开欢迎页面后。

+0

我在文档中没有读到关于777的任何内容。你有正确的所有权? –

+0

@loops更新了这个问题。还有什么权限应该为它工作? – besime

回答

1

如果你不希望世界可写,更改船东,PHP运行的用户。除非你有每个用户的权限运行,PHP的线程不会与目前开设的写访问

CHOWN WWW:万维网缓存

,那么你应该能有700或775,其将工作

您可以检查哪些用户与

echo exec('whoami'); 
+0

'sudo chown www-data:www-data cache' – besime

0

运行时,您应该使用chown命令创建的缓存文件夹的正确的所有权,而不是使之可读/写来使用chmod的所有用户。

如果您想多个用户访问该文件夹,你可以使用一个组,将用户添加到它,然后给该组的正确的权限。

例如,像这样:

sudo groupadd www 
sudo useradd -g <your username> www 
sudo chown -R :www /var/www 
sudo chmod -R g+rwX /var/www 

这将给组 “www” 的读写访问到/ var/WWW文件夹。

因此,你的情况,而不是使用它在缓存文件夹。

+0

您通常不希望www用户写入存在的文件。 – exussum