Ssh
rbash 將使用者限制在其主目錄關閉 sftp 連接
伺服器: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-sftp
insshd_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 命令