OpenSSH設定のみを使用してユーザーを/ home / % uディレクトリに制限できますか?インターネット上で見つけた指示に従ってSSHサーバーを停止し、以下をファイルに追加しましたsshd_config
。
Match group sftpusers
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
その後、SSHサーバーを再起動しました。
sftpusers
参考までにユーザーをグループに追加しました
私のユーザーはまだIEを閲覧でき、catコマンドを使用して自分のシステムのファイル構造全体にあるファイルの内容を一覧cd /
表示できます()。cat /usr/bin/test.sh
私はUbuntu Server 12.04 LTSを実行しています。
答え1
まず、ではなくても、ユーザーの家のための拡張としてChrootDirectory %h
代わりに使用することをお勧めします。/home/%u
%h
/home/$USER
それでは、実際の問題を見てみましょう。internal-sftp
コマンドを強制的に実行する必要があります。次の設定は私に適しており、あなたにも適しています。
Match group sftp
ForceCommand internal-sftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ユーザーの家はroot
所有し、上記の755権限を持っている必要があります。
drwxr-xr-x 22 root root 4.0K Nov 24 2011 /home/testuser
答え2
使用fakechroot
SSHに使用するユーザーとディレクトリを準備します。たとえば、
/bin
特定のコマンドをディレクトリからユーザーディレクトリにコピーできますbin
。ユーザー名はtest
、ユーザーディレクトリはと仮定します/home/test
。インストール
fakechroot
パッケージ# Debian-based distros sudo apt install fakechroot
編集するOpenSSHサーバー構成ファイル(たとえば
/etc/ssh/sshd_config
)を開きます。構成ファイルに次の行を追加します(既存の行がある場合は置き換えます)。
# Replace test with your user of choice Match User test ForceCommand fakechroot chroot /home/test # Other options
文書を保存します。目的の特定のポートでOpenSSHサーバーを起動します。それではSSH経由でログインしてみてください。すべてが期待どおりに機能するはずです。
役に立ったことを願っています!
答え3
私はこの質問が古くなったことを知っていますが、これは私に役立ちました。
chmod o-x /home/*
sudoで上記のコマンドを実行すると、ユーザーは自分のホームディレクトリに制限されます。