私はおそらく明白なものを欠いていると思いますが、ユーザーが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システム上にあります。これは私がかなりの時間の間私を困惑させているので、私はこれに関してどんな助けにも感謝します。
あなたがやりたいことに関連するキーワードは[〜#〜] 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アクセスを許可するフォルダーに一致する関連グループに入れます。たとえば、ユーザーdave
をsftp1_group
とsftp2_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