34

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

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

彼が普通の古いFTPに接続すれば、それはすべて問題ありません-彼はそのディレクトリだけに制限されていますが、SFTPを有効にするには、彼をbin / bashシェルに追加する必要があり、サーバー全体が突然開きます...

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

ありがとう!

4

5 に答える 5

47

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

セットアップのグローバル構成ファイルに追加する/etc/sshd_configか、またはそれを追加します。/etc/ssh/sshd_configsshd

ユーザーben_filesに一致
        #次の2つのディレクティブにより、ben_filesがchrootされます。
        #そしてsftpのみが利用可能です。他のchroot設定は必要ありません。
        ChrootDirectory /var/www/vhosts/mydomain.com/files
        ForceCommand internal-sftp
        #追加のパラノイアについては、すべてのタイプのポート転送を禁止します。
        AllowTcpForwarding no
        GatewayPortsいいえ
        X11転送なし
于 2009-10-07T02:48:06.657 に答える
3

あなたは彼の殻をに設定してみるかもしれません/bin/rbash

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

   ·      changing directories with cd

プラスもっと...

これを使用する前に、何が許可され、何が許可されていないかを完全に理解していることを確認してください。

于 2009-10-06T17:30:55.980 に答える
3

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

于 2009-10-06T17:41:08.443 に答える
0

pam_chrootを使用します。

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

于 2009-10-07T20:18:27.170 に答える
-2

次を使用して、ユーザーシェルを/ bin/falseに設定することもできます。

usermod -s / bin/falseユーザー名

sshでの接続を制限し、sftp(または、セットアップされている場合はftp)のみを実行できます。

私はこれをsftpusresに使用し、前述のchrootセットアップ(他の回答でカバーされています)を使用します。

于 2014-02-20T14:36:35.523 に答える