2015-11-03 37 views
-2

這是一個非常奇怪的問題。我有一個使用proFTPD的Ubuntu服務器設置(12.04),並且我已經打開了SFTP。我有一個用戶,我希望能夠編輯一組文件。這些文件歸用戶www-data和組www-data所有。這些文件具有權限664.用戶位於組www-data中,並且能夠在通過shell通過ssh連接時查看和編輯這些文件。但是,通過SFTP,用戶可以查看這些文件,但試圖編輯它們會導致SFTP報告拒絕權限,然後導致文件大小爲零。但是,用戶可以刪除和移動文件。任何人都可以想到爲什麼會發生這種情況?我也嘗試將文件的組所有權更改爲另一個組,並將該用戶添加到該組,但同樣的問題發生。有組寫訪問的用戶SFTP覆蓋失敗

這個問題不會發生在使用proFTPD的普通FTP上。

編輯:按照要求,該錯誤的全文(這是在SFTP命令行交互模式):

Uploading /Users/leonaves/Desktop/testfile to /testfile 
remote open("/testfile"): Permission denied 

編輯2:

:LS爲用戶主目錄-l輸出ls -l output

編輯3:SFTP日誌顯示如下:

error changing permissions of '/testfile' to 0100644: Operation not permitted 
+0

「嘗試編輯它們會導致SFTP報告權限被拒絕」請編輯您的問題以包含此錯誤消息的完整文本。顯示此www-data目錄(目錄本身)的「ls -l」輸出以及您要覆蓋的這些文件也是有幫助的。 – Kenster

+0

@Kenster添加了錯誤消息,將很快截圖並添加ls -l輸出。 –

+0

@Kenster添加ls -l輸出 –

回答

1

因此,問題在於,無論出於何種原因,proFTPD在上傳到0644之前都試圖設置文件的權限,並且因爲用戶不是所有者,所以不能。它試圖設置這些權限的原因是proftpd的文檔的細節(http://www.proftpd.org/docs/contrib/mod_sftp.html#SFTPOptions):

當SFTP客戶端上傳文件或創建一個目錄,路徑所需的權限發送到服務器的一部分的上傳。 (這與FTP不同,它不包括上載中的文件權限)。

現在,我不確定是否它是我的客戶端(我嘗試了多個SFTP客戶端),故意嘗試設置這些權限,或者如果它在某種程度上的默認設置proftpd的,但使用IgnoreSFTPUploadPerms選項(在文檔的上面鏈接部分詳述),我能制止這種影響文件傳輸:如果您需要更多的FTP

類似功能出於任何原因,並希望mod_sftp靜默地忽略由SFTP客戶端發送的任何權限,請使用此選項。