Linux

Red Hat SFTP 伺服器對 chroot 目錄的所有權錯誤

  • August 2, 2017

我正在 Red Hat 6.9 上建構一個 SFTP 伺服器(需要說明的是,我使用的是 OpenSSH 的 FTP 擴展)。我遵循以下指南:

https://www.howtoforge.com/tutorial/how-to-setup-an-sftp-server-on-centos/

我完全按照描述的方式配置所有內容。我使用的客戶端作業系統是 Windows 10。我已經使用 Putty 的 SFTP 客戶端和 WinSCP 進行了測試(我認為我的問題與客戶端無關)。當我嘗試連接時,系統會提示我輸入使用者名,然後是密碼。輸入我的密碼後,會話立即關閉。/var/log/secure 顯示以下相關消息:

Aug  2 14:30:28 SFTP_Server sshd[4087]: pam_unix(sshd:session): session opened for user scott.ftp by (uid=0)  
Aug  2 14:30:28 SFTP_Server sshd[4089]: fatal: bad ownership or modes for chroot directory "/sftp/scott.ftp/data"  
Aug  2 14:30:28 SFTP_Server sshd[4087]: pam_unix(sshd:session): session closed for user scott.ftp

要顯示與教程匹配的目錄權限:

[root@SFTP_Server data]# ls -alh / | grep sftp
drwxr-xr-x    4 root              root      4.0K Aug  2 12:37 sftp  
[root@SFTP_Server data]# ls -alh /sftp  
total 16K  
drwxr-xr-x   4 root root 4.0K Aug  2 12:37 .  
dr-xr-xr-x. 25 root root 4.0K Aug  2 12:35 ..  
drwxr-xr-x   3 root root 4.0K Aug  2 12:38 scott.ftp  

[root@SFTP_Server data]# ls -alh /sftp/scott.ftp/  
total 12K  
drwxr-xr-x 3 root              root      4.0K Aug  2 12:38 .  
drwxr-xr-x 4 root              root      4.0K Aug  2 12:37 ..  
drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug  2 12:38 data  

[root@SFTP_Server data]# ls -alh /sftp/scott.ftp/data/  
total 8.0K  
drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug  2 12:38 .  
drwxr-xr-x 3 root              root      4.0K Aug  2 12:38 ..  

我不確定是什麼讓我嘗試了這個想法,但為了排除故障,我更改了“。”的權限。目錄:

[root@SFTP_Server data]# pwd  
/sftp/scott.ftp/data  
[root@SFTP_Server data]# chown root:root .  
[root@SFTP_Server data]# ls -alh  
total 8.0K  
drwxrwx--- 2 root root 4.0K Aug  2 12:38 .  
drwxr-xr-x 3 root root 4.0K Aug  2 12:38 ..  

現在我嘗試再次連接,我可以成功連接。但我無法列出目錄或製作目錄或任何其他操作。我在這裡得到的錯誤是“權限被拒絕”。雖然仍通過 SFTP 連接,但在備用 SSH 連接中,我將權限更改回:

[root@SFTP_Server data]# chown scott.ftp:sftpusers .  
[root@SFTP_Server data]# ls -alh  
total 8.0K  
drwxrwx--- 2 scott.ftp sftpusers 4.0K Aug  2 12:38 .  
drwxr-xr-x 3 root              root      4.0K Aug  2 12:38 ..  

現在我可以在 SFTP 會話中創建目錄和其他操作。我退出 SFTP 會話並嘗試連接,但如上所述登錄失敗。

任何幫助是極大的讚賞。

現在我嘗試再次連接,我可以成功連接。但我無法列出目錄或製作目錄或任何其他操作。我在這裡得到的錯誤是“權限被拒絕”。

這在技術上是不可能創建的chroot,它可以由連接使用者寫入(除非您使用擴展 ACL,在這種情況下,當出於安全原因禁止使用時,這不是一個好的做法)。

一般建議是

  • chroot 到上面的一個目錄
  • 在 中創建另一個目錄data/,該目錄可由該使用者寫入。

引用自:https://serverfault.com/questions/866551