非常に明白な内容がありませんが、ユーザーが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
あなたがしたいことに関連するキーワードはSFTP 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
特定のユーザーを特定のフォルダに制限することは非常に簡単です。あなたの質問によるとさまざまなユーザーがアクセスできるフォルダのリストを指定する、それは単なる手動操作であり、別のグループを作成し、使用したい特定のフォルダと一致し、そのユーザーを刑務所の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