2013-08-20 99 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