Ssh

rbash 將使用者限制在其主目錄關閉 sftp 連接

  • February 26, 2014

伺服器:Red Hat Enterprise Linux Server 6.5 版(聖地亞哥)

使用 openssh-server 允許 sftp 連接。

我試圖將使用者限制在他們自己的個人主目錄中。所以我修改了 /etc/passwd 設置使用者“john”來使用/bin/rbash而不是/bin/bash

john:502:503::/home/john:/bin/rbash

如果我這樣做,john 將無法通過 sftp 連接:他一登錄,連接就會關閉(sftp 消息是Connection closed)。如果我將 bash 設置為 /bin/bash,他的連接工作正常,但是,john 可以使用 cd 在整個伺服器文件系統中移動。

你能解釋一下我做錯了什麼來限制通過 sftp 連接到他們自己的目錄的使用者嗎?

rbash不會讓您執行帶有前導的命令/,如果正在嘗試,那麼它將簡單地退出。

除非您使用的是內部 sftp 伺服器,否則執行的嘗試/usr/libexec/sftp-server將失敗。

使用Subsystem sftp internal-sftpinsshd_config將解決這個問題。

但是,使用rbash不會阻止 sftp 在您的文件系統中徘徊,您可能希望改為chroot 使用者

您可以使用沒有連結的普通 shell,對於重新限制的 shell,在 /etc/profile 中放置這個

if [[ $USER == "pluto" ]]; then
     export PATH=$HOME/bin
     readonly PATH
     set -r
fi

mkdir /home/pluto/bin as root
ln -s /bin/ls /home/pluto/bin/ls

這樣 sftp 工作,pluto 只能使用 ls 命令

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