web-dev-qa-db-ja.com

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
Adam P.

たぶんあなたは刑務所、特定のユーザーが閉じ込められるフォルダを参照しています。
構成のを再開しようとします:

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

  • Jailフォルダーはルート所有である必要があります
  • 刑務所フォドラーはグループ/他の人が書き込み可能にすることはできません
  • .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構成
次に、ユーザーをmatchして、独自のホームディレクトリに限定する必要があります。それでは、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

3)サブフォルダー内での書き込み操作を許可するご覧のとおり、ユーザーのホームフォルダーがルート所有になりました、したがって、echoesはいくつかのファイルをそれに書き込むことができなくなります。そのため、ユーザーがその中に書き込むことができる新しいサブフォルダー(つまり、echoes-write)を作成できます。

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

4)自動的に自分の書き込み可能なフォルダに移動します

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

0
Echoes_86