Я пытаюсь настроить SFTP-сервер для автоматического резервного копирования. Я настроил сервер Ubuntu 14.04 и добился частичного успеха. Идея, которую я хочу реализовать, такова:
Я использовал следующий фрагмент для создания Chroot в sshd_config следующим образом:
Match Group sftpbackup
ChrootDirectory /srv/sftpbackup/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Затем я установил разрешения для / srv / sftpbackup в соответствии с требованиями.
# ls -l
total 4
drwxr-x--- 3 root sftpbackup 4096 Jan 5 15:29 user1
#
Теперь пользователь может войти в систему, но не может загружать файлы (в разрешении отказано). Если я изменю владельца каталога, чтобы он выглядел так:
# ls -l
total 4
drwxrwx--- 3 user1 sftpbackup 4096 Jan 5 15:29 user1
#
Затем пользователь не может войти в систему из auth.log:
sshd[14835]: fatal: bad ownership or modes for chroot directory "/srv/sftpbackup/user1"
Похоже, что если домашний каталог пользователя является chroot SFTP, root должен владеть каталогом, поэтому необходимо создать подкаталог, чтобы пользователь мог писать в него.
Есть ли способ сделать корень доступным для записи? Глядя на различные веб-сайты, кажется, что нет способа добиться того, чего я хочу. Я не совсем понимаю, в чем разница между возможностью записи в chroot-каталог пользователем и записываемым подкаталогом. Понимание будет оценено.
Примечание. Моя цель - создать сервер, на котором резервные копии могут храниться на различных устройствах. Устройства будут настроены сторонним поставщиком, поэтому я стараюсь, чтобы все было как можно проще (одно имя пользователя на устройство, все файлы попадают в «корень» после входа в систему) и безопасным (созданные пользователи будут иметь минимальные права на сервер) по возможности. Извиняюсь, если мои желания немного жесткие.
Internal-sftp требует, чтобы chrooted пользовательский дом находился в корневом каталоге:
/some/path/root-owned/user-dir1
/user-dir2
У корневого каталога должно быть 555 разрешений, а пользовательские каталоги должны создаваться пользователем root и принадлежать конкретному пользователю. Внутри подкаталогов пользователь может делать все, что угодно, но он не может удалять или переименовывать каталог-пользователя [12].
Это внутренние ограничения sftp.