500 OOPS: vsftpd: отказ работать с перезаписываемым корнем внутри chroot ()

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

Моя конфигурация:

$ cat /etc/vsftpd-anon.conf 
listen=YES
local_enable=NO
anonymous_enable=YES
write_enable=YES
anon_root=/var/anonftp
xferlog_enable=YES
listen_address=10.0.0.2
listen_port=9988
allow_writeable_chroot=YES

Посмотрите, я не использую вещей корневого каталога. Существует этот каталог, который я создал специально для этого случая. Я также добавил allow_writeable_chroot опция и vsftpd распознают его, но ИГНОРИРУЮТ IT.

целевой каталог:

$ ls -l /var/ | grep anonftp
drwxrwxrwx  3 root root      4096 led 26 11:09 anonftp

Как я пытаюсь использовать его:

$ sudo killall vsftpd 
$ sudo vsftpd /etc/vsftpd-anon.conf &
[1] 21064
$ ftp 10.0.0.2 9988
Connected to 10.0.0.2.
220 (vsFTPd 3.0.2)
Name (10.0.0.2:david): anonymous
331 Please specify the password.
Password:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.

Ничто в vsftpd.log

1
задан 26 January 2016 в 13:35

4 ответа

Выполненный echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf && service vsftpd restart

2
ответ дан 7 December 2019 в 12:41

У меня была та же проблема, и ничто не помогло. нет:

  1. allow_writeable_chroot=YES в vsftpd.conf
  2. chmod к корневому каталогу

    ftp, таким образом, я сделал strace к процессу vsftpd и видел следующие строки:

...
18825 chdir("/usr/share/empty")         = 0
18825 chroot(".")                       = 0
...

после изменения полномочий на/usr/share/empty с

chmod 0644 /usr/share/empty

ошибка закончилась.

1
ответ дан 7 December 2019 в 12:41
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf && service vsftpd restart

Выполнение вышеупомянутая команда каждый раз при редактировании конференции

0
ответ дан 7 December 2019 в 12:41

КРАТКИЕ СВЕДЕНИЯ

В моем случае с примерно такой же конфигурацией проблема заключалась в том, что у вновь созданного пользователя не было своего собственного / home / {username} каталога

LONG

In vsftpd.conf , у меня были эти строки:

...
user_sub_token=$USER
local_root=/var/www/$USER
...

Не уверен, но похоже, что vsftpd сначала пытается войти в пользовательский каталог / home , затем в случае успеха он выполняет chroot () в local_root , и поскольку у пользователя не было своего собственного каталога / home / {username} - он завершился ошибкой выше.

Итак, добавив каталог / home / {username} и указав пользователя в качестве владельца - это решено!

0
ответ дан 12 January 2020 в 03:20

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

Похожие вопросы: