SSH / SFTPを介して指定されたフォルダにどのようにアクセスしますか?

SSH / SFTPを介して指定されたフォルダにどのようにアクセスしますか?

各ユーザーがSFTP接続を介して特定のホームディレクトリにのみアクセスできることを願っています。

構造例:

admin1 access to: /var/www/vhosts/vhost1
(optional)editor1 access to: /var/www/vhosts/vhost1/public

admin2 access to: /var/www/vhosts/vhost2
(optional)editor2 access to: /var/www/vhosts/vhost2/public

etc...
...`

答え1

たぶんあなたは意味刑務所、フォルダを特定のユーザーに制限します。
復元しようとしています。構成例:

1)環境の準備
刑務所環境を準備するには、いくつかの措置を講じる必要があります。私たちはSSHによって課されたいくつかのセキュリティ制限を尊重する必要があります(必要に応じて無効にすることができますが、これは本当に悪い考えです!)。

  • 刑務所フォルダはルートが所有する必要があります。
  • 刑務所fodlerはグループ/他人によって作成できません。
  • .ssh/フォルダにはモード700が必要です。
  • authorized_keysファイルにはモード600が必要です。

echoesユーザー名があり、ホームディレクトリがあるユーザーがいて、/home/echoes/それを自分のホームディレクトリに制限したいとします。あなたが言ったように、公開鍵認証メカニズムを持つSFTPアカウントを使用しているとしましょう。

mkdir /home/echoes/.ssh
# write echoes public-key into /home/echoes/.ssh/authorized_keys
chown root /home/echoes/  
chmod 755 /home/echoes/  
chown -R echoes:echoes /home/echoes/.ssh/  
chmod 700 /home/echoes/.ssh/  
chmod 600 /home/echoes/.ssh/authorized_keys  

2)SSH構成
今私たちは必要ですマッチユーザーを自分のホームディレクトリに制限します。それでは、SSHサーバー構成ファイルを開いてみましょう。

vim /etc/ssh/sshd_config  

internal-sftp管理SFTP接続の有効化:

Subsystem sftp internal-sftp  

次の行をコピーしてsshd_config設定ファイルに貼り付けます。私たちが言うのは、一致するものがあればで定義したフォルダ(この場合は唯一のホームフォルダ)echoesに移動するだけです。ChrootDirectory

Match user echoes  
    ChrootDirectory /home/echoes/ 
    ForceCommand internal-sftp

三)サブフォルダ内の書き込みを許可する ご覧のとおり、メインフォルダこれで、ユーザーはルートの所有者なので、echoes一部のファイルはルートに書き込まれません。したがって、新しいサブフォルダ(たとえばechoes-write)を作成し、ユーザーがここに書き込むことを許可できます。

mkdir /home/echoes/echoes-write/
chown echoes:echoes /home/echoes/echoes-write/
chmod ug+w /home/echoes/echoes-write/  

4)書き込み可能な独自のフォルダに自動的に移動

自動的にユーザーの一致 - >刑務所に移動 - >自動的に自分の刑務所の書き込み可能なサブフォルダーに移動する必要がある場合は、お知らせください。構成手順を使用して
シナリオを復元します。
あなたがシステムに関する情報を書いていなかったので、私は多くの仮定をしました。

関連情報