SFTP ユーザーを複数のフォルダに制限する

SFTP ユーザーを複数のフォルダに制限する

おそらく非常に明白なことを見逃しているのでしょうが、ユーザーが SFTP 経由でアクセスできるフォルダーのリスト (ユーザーのホーム ディレクトリだけでなく) を指定することは可能ですか?

例えば

Admin -> Full root access  
WebDev1 -> Access to the primary vhost folder and sub directories  
SysAdmin1 -> Access to all folders, except the vhost folder  
Manager1 -> Access to vhost folder, and phpMyAdmin install folder  

「Admin」および「WebDev1」ユーザーに対しては正常に動作しますが、他の 2 ユーザーに対しては動作しません。

アクセスを許可したい「Manager1」ユーザーの場合(サブディレクトリを含む):

/data/vhosts  
/usr/share/phpMyAdmin  

これは SSHD を使用する Centos 7 システムです。数時間前から困惑しているので、これに関して助けていただければ幸いです。

答え1

あなたがやりたいことに関連するキーワードはFTPサーバー chroot 刑務所

sshd_config を変更する必要があります。まず、SFTP を有効にする行のコメントを解除します。これは次のようになります。

Subsystem sftp /usr/lib64/ssh/sftp-server

sshd_config の下部に、コメントアウトされたテンプレート内に次のような内容が含まれている場合があります。具体的には次のような内容になります。

# jail only user dave to folder /dave_sftp/
Match User dave
   ChrootDirectory /dave_sftp
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail only user ron to folder /ron_sftp/
Match User ron
   ChrootDirectory /ron_sftp
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail users that are in group sftp1_group to the folder /sftp1_group/
Match Group sftp1_group
   ChrootDirectory /sftp1_group
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

# jail users that are in group sftp2_group to the folder /sftp2_group/
Match Group sftp2_group
   ChrootDirectory /sftp2_group
   AllowTCPForwarding no
   X11Forwarding no
   ForceCommand internal-sftp

特定のユーザーを特定のフォルダに監禁するのはかなり簡単です。さまざまなユーザーがアクセスできるフォルダのリストを指定する、これは、別のグループを作成し、それを使用したい特定のフォルダーに一致させ、それらのユーザーを、jailed sftp アクセスを許可したいフォルダーに一致する関連グループに配置するという、手作業の作業にすぎません。たとえば、ユーザーを と のdave両方のグループに配置するsftp1_groupと、sftp2_groupそのユーザーが複数のフォルダーにアクセスできるようになります。

非常に良い例がここにもあります: https://serverfault.com/questions/591781/creating-sftp-users-and-jailing-to-chroot-on-centos-user-authentication-error

留意する

chroot ホームまでのすべてのフォルダは、root ユーザーのみが所有し、書き込み可能である必要があります。グループが root であっても、フォルダをグループ書き込み可能にすることはできません。

もう一つの例を挙げます。https://askubuntu.com/questions/261663/how-can-i-set-up-sftp-with-chrooted-groups

関連情報