Назад | Перейти на главную страницу

исключить одного пользователя из chroot

У меня есть настройка chroot на моем сервере CentOS (chroot без доступа к оболочке / строго sftp). Для справки, папки такие:

home/sftp_users/%u     (root:root 750)

home/sftp_users/%u/input (site_user:sftp_users 770)

home/sftp_users/%u/input/result (site_user:sftp_users 770)

В моем файле sshd.conf у меня есть это:

Subsystem       sftp    internal-sftp

Match Group webrecom_sftpusers
    ChrootDirectory /home/sftp_users/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

Это в значительной степени то, что я хочу. Если вы заметили выше, я не делал пользователя владельцем папок в их home directory. Причина в том, что я не хочу, чтобы они могли удалять эти каталоги или изменять разрешения для них. В противном случае кто-то может в какой-то момент все испортить. У них все еще есть доступ к -r -w -e из-за их группы. Хотя это в основном то, что я хочу, из-за их способности писать в input они могут удалить result каталог. Я могу обойти это in PHP путем воссоздания этой единственной папки. PHP будет искать в этих папках файлы, которые нужно подобрать и запустить, а затем вернет отчеты по ним.

Проблема в том, что site_user принадлежит к своей группе site_user а в PHP я могу назначать папку только тем группам, к которым принадлежит пользователь. Если я добавлю site_user к sftp_users потом застревает в тюрьме CHROOT.

Полагаю, я могу сделать папки, принадлежащие site_user и в site_user group и установите разрешения на 0777, но:

Соответствие может принимать несколько условных выражений. Пытаться:

Match Group webrecom_sftpusers, User !site_user