Linux
chmod 不粘
我在虛擬專用伺服器上使用 CentOS。
當我以 root 身份進入並更改文件夾的 chmod 值時,它可以工作。但是,我放入該文件夾的任何文件都不會繼承我設置的 chmod。
這是我使用的:
chmod -Rv 777 files
回報是這樣的:
mode of `files' retained as 0777 (rwxrwxrwx) mode of `files/1344188366-f7cad6aa87685db775817d4168c329ef-AUTO_INSURANCE2.csv' changed to 0777 (rwxrwxrwx)
好的,因此更改了一個文件。但是,如果我將任何文件放入該文件夾,它們將具有不同的 chmod 值。如何使 chmod 與該目錄中的每個文件和文件夾保持一致?
我希望將預設 chmod 設置為的文件正在通過 XHR 上傳。IE 從瀏覽器到伺服器的文件上傳過程。
如何在我的 PHP 中設置應用程式碼的 chmod 級別?
編輯
我想我已經找到了解決問題的合理方法。下面的答案解決了文件權限問題。但是
get_current_user()
在 php 中執行後,我意識到執行腳本的使用者與我正在嘗試處理的文件的使用者不同。文件使用者是 apache,因為那是它的創建者。但是PHP腳本是一個不同的使用者,預設使用者。
您需要改為修改
umask
。這可以按使用者(in~/.profile
)或系統範圍(ie/etc/profile
)定義。編輯:
您的具體問題是如何設置通過 Apache 通過 PHP 上傳的文件的權限。相同的概念也
umask
適用,只是需要在正確的位置進行定義。在典型的 Apache 安裝中,該位置將是環境變數文件;envvars
在某些發行版上。/etc/sysconfig/httpd
在 RHEL/CentOS 上。