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

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

Сервер Ubuntu 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

ОБНОВЛЕНИЕ1

: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

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

Из 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 и записывать его.