iT邦幫忙

0

sftp無法上傳的奇怪問題

建了一個帳號sftp用帳號密碼登入nginx server
但是sftp帳號看起來沒有寫入權限
我試過一些改資料夾權限的方式反而會無法登入
錯誤: Server unexpectedly closed network connection
錯誤: 無法連線到伺服器

chown root.sftpusers /usr/share/nginx
我只要改了nginx資料夾的owner為sftp就會無法登入
或是把/usr/share/nginx權限775 都會出現上述錯誤 一定要755才可以成功登入

這是哪裡沒設定好嗎?

看更多先前的討論...收起先前的討論...
haoming iT邦好手 1 級 ‧ 2018-01-05 08:58:01 檢舉
請問這是 單純的 sftp , 還是 限定 sftp only 的 chroot 的設定?? chroot 的部分 我記得 在 權限部分的設定有比較特別
hsiang11 iT邦好手 1 級 ‧ 2018-01-05 16:12:45 檢舉
sftp only 的 chroot
hsiang11 iT邦好手 1 級 ‧ 2018-01-05 16:34:52 檢舉
其實我現在是遇上chroot後就無法連線的問題
例如開了一個帳號ab ,sftp連線/home/ab是沒有問題的
但是我只要強制修改了ab帳號的/home,改成/usr/share/nginx
就出錯誤: 認證失敗.
錯誤: 嚴重錯誤: 無法連線到伺服器
或是上面的錯誤,因為sshd config 裡面又有另一種設定Match User ab的chroot方式
實在不清楚到底是以哪一種chroot方式為主
hsiang11 iT邦好手 1 級 ‧ 2018-01-05 16:48:22 檢舉
現在有成功chroot在/usr/share/nginx,發現nginx這個目錄owner一定要設為root
可是設為root又造成另一種問題
我使用ab登入後在/usr/share/nginx的根目錄下無權限寫入資料
一定要先用root在nginx底下建資料夾,才能在資料夾內上傳東西
這問題還真難解
如果把nginx改owner為ab會無法登入
改root又寫入失敗
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
haoming
iT邦好手 1 級 ‧ 2018-01-08 10:10:53
最佳解答

我有遇到類似的問題,提供我的經驗.
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

這問題我當時候也卡關很久,提供參考。

看更多先前的回應...收起先前的回應...
hsiang11 iT邦好手 1 級 ‧ 2018-01-08 15:41:06 檢舉

這方法頗為有趣 但是我發現了另一個疑問
/home/user 目錄下通常會有.ssh資料夾 裡面有authorized_keys
這樣會不會造成資安上的問題 存取進home就可以看這檔案

haoming iT邦好手 1 級 ‧ 2018-01-08 16:26:05 檢舉

/home/user 也是 他自己的 目錄, 所以 看到 .ssh 資料夾應該無妨。

hsiang11 iT邦好手 1 級 ‧ 2018-01-08 17:16:02 檢舉

看來也是我多慮了 .ssh如果改owner為root 反而無法登入ssh
不過.ssh owner為user真的是有些風險
進SFTP的人看到.ssh如果不清楚嚴重性 直接在介面刪了
就變成進不去了

hsiang11 iT邦好手 1 級 ‧ 2018-04-20 18:24:25 檢舉

mount --bind 這方式每次重開機掛載會失效 有沒有什麼解法?

haoming iT邦好手 1 級 ‧ 2018-04-23 08:49:52 檢舉

我要發表回答

立即登入回答