建了一個帳號sftp用帳號密碼登入nginx server
但是sftp帳號看起來沒有寫入權限
我試過一些改資料夾權限的方式反而會無法登入
錯誤: Server unexpectedly closed network connection
錯誤: 無法連線到伺服器
chown root.sftpusers /usr/share/nginx
我只要改了nginx資料夾的owner為sftp就會無法登入
或是把/usr/share/nginx權限775 都會出現上述錯誤 一定要755才可以成功登入
這是哪裡沒設定好嗎?
我有遇到類似的問題,提供我的經驗.
user home 如果是 /usr/share/nginx
/usr/share/nginx : owner 必須為root, user 無法在這層寫入
/usr/share/nginx/pub : 這層的owerner 可以為 user, 權限為 755, user可以在這裡寫入
因為上列的特性, 所以我就不更改user home, 而是把我要的 target path建立別名到 user home
所以我的環境為, 先增加user 到 daemon 權限
chgroup -a -G daemon user
設定user 家目錄
/home/user : owner = root , permission = 755
/home/user/nginx : owner = user, permission = 775
比較特別的是, /home/user/nginx 建立別名時候 不能用 ln 建立,要用 mount
所以用指令
mount --bind /usr/share/nginx /home/user/nginx
然後 如果你的機器有啟動 selinux (大部分都有) , 還要再做 selinux 的設定
setsebool -P ssh_chroot_rw_homedirs on
restorecon -R /home/user
完成後,要重新啟動 sshd 服務
service sshd restart
這問題我當時候也卡關很久,提供參考。