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