Я работал над этим около часа и следовал многим примерам, но все же новый пользователь может получить доступ ко всей структуре каталогов или вообще не может войти в систему с сообщением «500 OOPS: vsftpd: отказ от запуска с доступным для записи корнем внутри» корневой ()». Мои шаги были:

adduser user1
nano /etc/passwd (changed home dir to /var/www/domain.com and bash to rbash)
nano /etc/vsftpd (uncommented chroot_local_user=YES, chroot_list_enable=YES, chroot_list_file=/etc/vsftpd.chroot_list)
nano /etc/vsftpd.chroot_list (add a line for user1)

Я перепробовал несколько разных вариантов, но для меня это не имеет смысла. Во-первых, давайте уточним, что на самом деле означает chroot_local_user = YES? Я спрашиваю только потому, что, похоже, ничего не делает так, как я ожидаю. Некоторые сайты говорят, чтобы переключить его на НЕТ.

Я пытаюсь настроить виртуальный хост для доступа веб-мастера моей сестры, но не хочу, чтобы он просматривал другие мои файлы для других моих сайтов. Есть ли шаг, который я пропустил, или я должен просто переключиться на другой FTP-сервер?

2 ответа2

0

Гарет Красный может быть абсолютно прав, в итоге я отказался от vsftp, потому что я не понял этого до того, как он пришел.

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

/etc/ssh/sshd_config: Add these lines:
Subsystem sftp internal-sftp
Match User sftpuser
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /home  
  ForceCommand internal-sftp

Супер важно это остается / дома! Если вы попытаетесь / home / sftpuser, это не удастся.

Трюк в конце заключался в том, чтобы проверить auth.log, куда я отправляю эту ошибку: fatal: bad ownership or modes for chroot directory

Это привело меня к этой странице:https://wiki.archlinux.org/index.php/SFTP_chroot

После того, как я изменил ChrootDirectory на /home, я chmod 750 всех пользовательских каталогов, которые посадили этого пользователя в тюрьму, а затем выполнил эту команду:

mount --bind /var/www/example.com /home/sftpuser

Надеюсь, это кому-нибудь поможет, у меня ушло несколько часов на поиск нужной информации, было бы намного меньше, если бы я заглянул в журналы ранее.

0

Идея состоит в том, чтобы привязать пользователя к его домашнему каталогу. Добавление пользователей в /etc/vsftpd.chroot_list предоставляет им исключение из этого ограничения, поэтому ваш веб-мастер не должен быть там.

Вы получаете 500 OOPS потому что вы предоставили разрешение на запись в корень каталога и у вас включен chroot.

Вам не нужно использовать chroot - просто измените домашний каталог пользователя на корень сайта:

usermod -d /var/www/domain.com user1

Убедитесь, что ваш файл vsftpd.conf содержит:

anonymous_enable=NO
local_enable=YES
write_enable=YES

Убедитесь, что вы удалили (или отключили) все строки chroot .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .