SFTP - разрешить пользователю загружать только на www

Ubuntu Server 12.04

Мне нужно разрешить пользователю offlineuser загружать файлы в var/www/mysite/web/ только каталог. Этот каталог действует как корень сайта, а также как место загрузки (устаревшая настройка).

В моем /etc/ssh/sshd_config файл:

Со следующим закомментированным, они могут загрузить куда угодно. Как только я раскомментирую это, они вообще не смогут подключиться.

AllowUsers offlineuser ubuntu

Subsystem       sftp    internal-sftp

Match Group sftponly
        ChrootDirectory /var/www/mysite/web/%u       
        ForceCommand internal-sftp
        PasswordAuthentication no
        X11Forwarding no
        AllowTcpForwarding no

offlineuser является членом группы sftponly

Это было взято из: Chroot SFTP соединение и OpenSSH SFTP chroot() с ChrootDirectory

Update1

:pam_unix(sshd:session): session opened for user offlineuser by (uid=0)

: fatal: bad ownership or modes for chroot directory component "/var/www/mysite/"

: pam_unix(sshd:session): session closed for user offlineuser

Итак, это довольно ясно, но действительно ли мне нужно прервать каталог для offlineuser? Не вызовет ли это проблем, если www-data хочет написать в него (что вероятно?)

2 ответа

Из справочной страницы sshd_config:

Указывает путь к каталогу для chroot(2) после аутентификации. Все компоненты пути должны быть корневыми каталогами, которые не доступны для записи любому другому пользователю или группе. После chroot sshd(8) меняет рабочий каталог на домашний каталог пользователя.

Кажется, что все родительские каталоги должны быть доступны для записи только как root, даже для SFTP. Если это невозможно, я бы предложил переместить каталог в другое место (например, /home/web/offlineuser), а затем символическая ссылка / привязка монтирует его на место.

Если вы измените каталог chroot на

ChrootDirectory /var/www/mysite/web/

и затем предоставьте пользователю домашний каталог / testuser в /etc/passwd, тогда у вас может быть /var/www/mysite/web/ правильно принадлежащий root, а /var/www/mysite/web/testuser может принадлежать и записываться TestUser.

Другие вопросы по тегам