2014-09-25 50 views
1

如果我要追加到一個日誌文件,如下所示:爲了寫入文件,FILE和FOLDER需要權限嗎?

file_put_contents("ip.txt", $ip, FILE_APPEND); 

什麼必須將文件的權限是(UNIX)?目錄權限是否也必須更改,或者是否對文件的權限進行了調整?

+0

這是什麼意思?八進制值需要? – Ghost 2014-09-25 02:08:28

+0

我會開始說'file_put_contents'不要'追加';如果ip.txt已存在,它將被替換 – 2014-09-25 02:09:35

+0

對文件使用644或777。 644更好,應該就夠了。對於文件夾755通常是最好的。你很少會想要使用其他的東西。 – 2014-09-25 02:17:20

回答

1

最常見的文件權限是644,它賦予所有者讀取和寫入的權限並讀取給組和其他人。

爲了在目錄中寫入文件,你需要給它一個執行權限,所以7xx就是你需要的。至於對羣組和其他人的權限,則視情況而定。

目錄最常用的權限是755;這意味着(除了上面所說的之外)該組和其他人已經閱讀和執行許可。 目錄上的執行權限意味着您可以輸入,您需要在其中寫入文件。

編輯:

Why would the Group and World fields not be set, if this will be executed from a 
website? Why not 666 instead of 644? (I might be misunderstanding what Group and 
World mean.) 

集團和其他應在該文件所在的位置,在Unix組系統的背景下進行解釋。其他人是系統中那些沒有參與羣體並且不是所有者的用戶。

但是,所有這些在Web應用程序的上下文中幾乎沒有任何作用,因爲它總是Web服務器(即Apache)運行處理文件的腳本的人。所以在這一點上唯一真正相關的許可是三個中的第一個。

如果您有通過控制檯訪問您的服務器,並且您試圖訪問該文件,請訪問ip.txt文件。那麼您必須以具有足夠權限訪問該文件的用戶身份登錄。這就是第二個和第三個數字發揮作用的地方。

因此可以說你的文件的權限設置爲666:那麼任何登錄的用戶都可以讀寫該文件(假設他們對包含該文件的目錄也具有執行權限)。如果文件具有權限644,則只有所有者纔有權寫入,而羣組用戶和其他人只能擁有讀取權限。

但是,在Web應用程序的上下文中,您真正關心的唯一權限就是第一個。

+0

爲什麼不設置組和世界字段,如果這將從網站執行?爲什麼不是666而不是644? (我可能會誤解集團和世界的含義。) – Doug 2014-09-25 05:10:35

相關問題