vsFTPd 在 Ubuntu 上預設上傳的文件權限不起作用
我有一台執行Ubuntu 12.10 x64的伺服器,以及最新版本的 vsFTPd。
我的使用者 example.com 的主文件夾設置
/var/www/example.com
為我在裡面創建了一個 public_html 文件夾並給
777
了它權限,並刪除了主使用者文件夾的寫權限。一切正常,但是:我通過 FTP(使用 SmartFTP)上傳的每個文件的 chmod 都為 0。
我
vsftpd.conf
只有一行相關:local_umask=022.
我試圖更改為:
file_open_mode=777 local_umask=002
所以我的文件會
775
在上傳後立即獲得。但只有我上傳的文件夾獲得了
775
權限。我上傳的文件得到
1411 permissions
有人可以幫我解決這個問題嗎?
得到了我的答案:
由於 www-data 是負責 webserver 的使用者,而您的普通使用者負責 ftp 伺服器,因此您首先需要使它們成為同一組的成員:組 www-data。
創建自定義使用者:
useradd –d /var/www/asasd.com -g www-data -m yourusername
這樣主目錄將是*/var/www/asasd.com*並且您的使用者將在www-data組中。在此之後,通過鍵入更改使用者密碼
passwd
。然後,您需要在您的使用者名主文件夾中創建一個public_html文件夾,因為 FTP 無法寫入主文件夾的根目錄,您必須創建一個子文件夾。
刪除您的使用者名文件夾的寫入權限
chmod a-w /var/www/asasd.com
然後,為子文件夾應用新權限:(
chmod -R 775 /var/www/asasd.com/public_html
請注意,您必須使用 775 chmod,因為您需要組寫入權限,而不是使用者寫入權限,因為您希望整個組(ftp 和 www-data)都能夠寫入)然後,擁有www-data的文件夾chown -R www-data:www-data /var/www/asasd.com/public_html
這樣,您必須能夠使用 FTP 並讓 Web 伺服器正常工作。
祝你好運!
有趣的是,這個資訊很難找到。人們不再分享知識了嗎?
我最終使用
file_open_mode=0777 local_umask=022
在 vsftpd.conf 上。問題是 FTP 使用者和 www-data 使用者都需要寫入權限,所以我必須將 www-data 和 ftpuser 加入 www-data 使用者組,並且 CHMOD -R 775 上的所有文件 /var/www - 這樣,使用 775 CHMOD,該組將具有讀取、寫入和執行權限。現在它工作得很好。