web-dev-qa-db-ja.com

sftpユーザーをホームディレクトリに制限するLinuxシェル?

サーバー上のWebルート内のディレクトリへのSFTPアクセスを許可する必要があります。ユーザーとしてben_filesを設定し、ホームディレクトリを次のように設定しました。

/var/www/vhosts/mydomain.com/files

彼が単純な古いFTPで接続している場合、それはすべて問題ありません-彼はそのディレクトリだけに制限されていますが、SFTPを有効にするにはbin/bash Shellに彼を追加しなければなりませんでした。

すべてのディレクトリを開かずに、SFTPアクセスを許可する方法はありますか?私は彼が彼の家だけに制限されることを本当に望みます;)

ありがとう!

33
MrFidge

OpenSSH≥4.8は、ChrootDirectoryディレクティブをサポートします。

追加 /etc/sshd_configまたは/etc/ssh/sshd_configまたはセットアップのグローバルsshd設定ファイルは何でも:

ユーザーben_filesと一致します。他のchrootのセットアップは必要ありません。
 ChrootDirectory /var/www/vhosts/mydomain.com/files
 ForceCommand internal-sftp 
 。
 AllowTcpForwarding no 
 GatewayPorts no 
 X11Forwarding no 
46
ephemient

彼のシェルを/bin/rbashに設定してみてください

制限されたシェルbashがrbashという名前で開始された場合、または呼び出し時に-rオプションが指定された場合、シェルは制限されます。制限付きシェルを使用して、標準のシェルよりも制御された環境をセットアップします。以下が許可されないか、実行されないことを除いて、bashと同じように動作します。

   ·      changing directories with cd

さらに...

これを使用する前に、許可されていることと禁止されていることを完全に理解してください。

3

rssh を見てください。 o/sディストリビューション用に既にパッケージ化されている場合があります。

3
Ned Deily

Pam_chrootを使用します。

ここに良いマニュアルがあります: http://www.howtoforge.com/chroot_ssh_sftp_debian_etch

0
rvs