特定のディレクトリにのみアクセスする sftp ユーザーを作成するにはどうすればよいですか?

特定のディレクトリにのみアクセスする sftp ユーザーを作成するにはどうすればよいですか?

特定のフォルダへのアクセスが制限された sftp のユーザーを作成したい

私のフォルダ構造は次のようになります:

/var/www/site1/files/

/var/www/site2/files/

/var/www/site3/files/

Filezilaを使用してWebサイトのファイルをアップロードするためだけにアクセスできるsftp user1を作成し/var/www/site1/files/、他のフォルダーを表示できないようにしたい

同様に、ユーザー2はアクセスが制限されており、/var/www/site2/files/

制限付きアクセスを持つユーザー3の場合/var/www/site3/files/

答え1

ほぼその通りです。
最善の方法は、次のとおりです。

  1. /home次の行を追加して、3 つのディレクトリをそれぞれ ディレクトリにマウントします/etc/fstab

    /var/www/site1/files/ /home/site1/htdocs/ bind 0 0
    /var/www/site2/files/ /home/site2/htdocs/ bind 0 0
    /var/www/site3/files/ /home/site3/htdocs/ bind 0 0
    
  2. mount -aマウントを即座に開始するために使用します。

  3. ユーザー site1、site2、site3 が同じグループ (例: sftpusers または sftponly) に追加されていることを確認してください。次のコマンドを使用して、ユーザーをグループに追加できます。

    usermod -aG sftponly site1
    usermod -aG sftponly site2
    usermod -aG sftponly site3
    
  4. /home/{site1,site2,site3}次を使用して、対応するユーザーのホーム ディレクトリを作成します。

    usermod -d /home/site1 site1
    usermod -d /home/site2 site2
    usermod -d /home/site3 site3
    
  5. に次の内容を追加します/etc/ssh/sshd_config:

    Match group sftponly
          ChrootDirectory %h
          X11Forwarding no
          AllowTcpForwarding no
    
  6. 最後に、次のコマンドを使用して ssh サービスを再起動します。

    service ssh restart
    

見るDigital Oceanのこの投稿詳細については。

答え2

フォロー後クリシュナ・チャリスの回答所有権と権限を調整する必要があるかもしれません。

たとえば、ユーザー site1 の場合:

chown root:root /home/site1
chmod 755 /home/site1
cd /home/site1
chown site1:sftponly

関連情報