複数のドメインとユーザーが必要なWebサーバーを構成しています。
ユーザーをホームディレクトリのみに制限し、SSHまたはSFTP経由で接続できるようにしたいと思います。
これまで、いくつかのガイドラインに従ってユーザーを特定のディレクトリに制限し、SFTPを使用して接続していましたが、SSHを使用して接続しようとすると、次の結果が表示されます。
ホームディレクトリ/home/usernameでchdirを実行できません。そのファイルまたはディレクトリはありません。 /bin/bash: そのファイルまたはディレクトリはありません。
私の/etc/ssh/sshd_configは次のように終了します。
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
* "sftp"グループに "username"ユーザーを追加しました。
*「Match group...」ブロックをコメントアウトし、「Subsystem sftp Internal sftp」を「Subsystem sftp /usr/libexec/openssh/sftp-server」に変更すると、SSHを使用して接続できますが、フォルダの制限はありません。
- どんなアイデアもありますか?
サブ質問:/var/www/ディレクトリからユーザーのホームディレクトリにドメインをマウントしてアクセスできるようにしました。これは一般的に共有ホスティングで行われますか?
答え1
正しいchroot環境を設定する必要がありますユーザーごとSSH接続が必要です。
ルートが指定されているすべてのホームディレクトリには、次のものが必要です。それシェルなどを起動できる最小のUnix実行可能ファイルとデバイスファイルのセットです。コマンドセットは、ユーザーの「自分のルートディレクトリ」にコピーするすべてのコマンドに制限されます。これがchroot環境で最もトリッキーな点です。ユーザーは、特定のコマンドが不足していると無限に文句を言います。
chrooted SSHを設定する方法についてのマニュアルがたくさんありますが、このマニュアルはかなり普通に見えます。Chrooted SSH/SFTP チュートリアル (Debian Lenny)。
乾杯!