
auth.log
嘗試使用 SFTP 連線到網站時出現以下錯誤。
致命:chroot 目錄「/var/www」的所有權或模式錯誤
ls -ld
該目錄的顯示如下:
drwxrwxr-x 4 root sftponly 4096 八月 12 04:05 /var/www/
如您所見,我已授予 group 完全權限sftponly
。我連接到 SFTP 所使用的使用者是mysftpuser
該群組的一部分sftponly
。
如果我執行以下操作,那麼我可以連接,但無法重新命名、編輯、刪除、覆蓋其中的任何檔案或資料夾www
須藤 chmod 755 /var/www/
這是我的sshd_config
設置
匹配組 sftponly
ChrootDirectory /var/www
X11Forwarding 否
AllowTcpForwarding 否
ForceCommand 內部 sftp
簡而言之,sudo chmod 755 /var/www/
允許我連接,但只能在唯讀模式下進行。sudo chmod 775 /var/www/
甚至不允許我連線。
如何解決這個問題?
答案1
這是您需要的命令:
usermod -d /var/www/ sftponly
usermod -s /sbin/nologin sftponly
usermod -s /bin/false sftponly
授予任何使用者對任何資料夾的權限的最佳方法是 ACL:
setfacl -Rm "u:sftponly:rwx" /var/www/
setfacl -Rdm "u:sftponly:rwx" /var/www/
答案2
聽起來您的權限對於 SFTP 來說太寬鬆。您需要為使用者建立一個資料夾,並讓他以 0700 權限或更嚴格的權限存取該資料夾。
請參閱此問題的答案以獲取更多信息 伺服器故障問題