Linux
Red Hat SFTP 伺服器對 chroot 目錄的所有權錯誤
我正在 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/
,該目錄可由該使用者寫入。