web-dev-qa-db-ja.com

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システム上にあります。これは私がかなりの時間の間私を困惑させているので、私はこれに関してどんな助けにも感謝します。

3
David Thompson

あなたがやりたいことに関連するキーワードは[〜#〜] sftp [〜#〜]chrootjail

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

特定のユーザーを特定のフォルダーに投獄することは、かなり単純です。 の質問に従って、さまざまなユーザーがアクセスできるフォルダのリストを指定します。これは、別のグループを作成し、それを使用したい特定のフォルダに一致させるための、あなたの手作業のほんの一部です。 、それらのユーザーを、投獄されたsftpアクセスを許可するフォルダーに一致する関連グループに入れます。たとえば、ユーザーdavesftp1_groupsftp2_groupの両方のグループに入れて、そのユーザーが複数のフォルダーにアクセスできるようにします。

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

に注意してください

Chrootホームまでのすべてのフォルダーは所有され、rootユーザーのみが書き込み可能である必要があります。フォルダがグループ書き込み可能であってはなりません-グループがルートであっても

ここに別の例があります: https://askubuntu.com/questions/261663/how-can-i-set-up-sftp-with-chrooted-groups

4
ron