Меню

Ошибка 500 oops vsftpd refusing to run with writable root inside chroot

Эти инструкции предназначены специально для устранения ошибки: 500 OOPS: vsftpd: отказ от запуска с доступным для записи корнем внутри chroot (). 

К примеру возьмем работу с сервера Liquid Web Self-Managed Fedora 20 и войдем в систему как пользователь root.

Исправление ошибки

Эта ошибка может возникать при попытке подключиться к FTP-серверу vsftpd, который настроен на jail (предотвращает доступ к другим каталогам) каждого пользователя FTP. Лучше всего создавать пользователей Linux специально для FTP, которые не могут войти через SSH. Например, если вы хотите удалить доступ по SSH для TestUser, тогда вам следует использовать следующую команду:

usermod -s /sbin/nologin testuser

Однако это не решит проблему, указанную в ошибке. Для этого вы должны сделать домашний каталог пользователя доступным только для чтения. Предполагая, что имя пользователя TestUser и домашний каталог / Главная / TestUser, затем выполните следующую команду:

chmod a-w /home/testuser

Затем обязательно перезапустите vsftpd командой

systemctl restart vsftpd

Альтернативное исправление

Вы можете обойти проверку на запись в конфигурационном файле vsftpd, выполнив следующие две команды:

echo 'allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd

В целях безопасности корневая директория FTP сервера должна быть защищена от записи. И если Вы только что установили VSFTPD и пытаетесь подключиться, можете получить такую ошибку.

Command: USER xxx
Response: 331 Please specify the password.
Command: PASS ******************
Response: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Error: Critical error: Could not connect to server

И это нормально в том случае, когда для пользователя, от которого Вы подключаетесь по FTP, корневая директория доступна для записи. Все, что Вам необходимо сделать, это установить права Read-only для этого пользователя. Но если все же нужны права именно записи в этой корневой директории (например, когда Вы используете FTP только для себя), то достаточно внести в конфигурацию VSFTPD сервера (/etc/vsftpd/vsftpd.conf) следующую строку:

allow_writeable_chroot=YES

После этого просто перезапустите службу VSFTPD

# service vsftpd restart

Теперь пробуйте подключиться к FTP снова. На этот раз все должно быть ок!


Are you looking for a solution to the error ‘500 oops vsftpd refusing to run with writable root inside chroot()’? We can help you in fixing it.

Here at Bobcares, we have seen several such vsftpd related errors as a part of our Server Management Services for web hosts and online service providers.

Today, we’ll take a look at the cause of this error to occur and also see how to fix it.

Why does ‘500 oops vsftpd refusing to run with writable root inside chroot()’ error occur

This error mainly occurs when you have newly installed the vsftpd on a Linux server and trying to FTP to it.

Also, after upgrading the vsftpd or vsftpd-ext, you may come across this error message while connecting to FTP.

For instance, the error appears as shown in the below image.

500 oops vsftpd refusing to run with writable root inside chroot()

Remedy for this vsftpd refusing error

Now let us see how our Support Engineers resolve this error message to our customers.

The best fix is to create a separate Linux user specifically for FTP only that can’t log in via SSH.

In case, if you wish to remove the SSH access for a test user then you can run the below command.

$ usermod -s /sbin/nologin testuser

However, this will not completely fix the error. So we need to modify the user’s home directory to read-only. Here, we are assuming the username to be testuser and the home directory to be /home/testuser. Then we run the below command.

$ chmod a-w /home/testuser

Finally, restart the vsftpd by running the below command.

$ systemctl restart vsftpd

Alternatively, you can try bypassing the writable check in the vsftpd config file by executing the below command.

$ echo ‘allow_writeable_chroot=YES’ >> /etc/vsftpd/vsftpd.conf && systemctl restart vsftpd

[Need any further assistance in fixing vsftpd errors? – We are here to help you.]

Conclusion

In short, this error occurs while connecting to vsftpd if it is a newly installed vsftpd or if it is upgraded. Today, we saw how our Support Engineers resolve this error message.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

Date November 2nd, 2012 Author Vitaly Agapov

Мы ведь не дети и отлично понимаем, что сила современной философии не в силлогизмах, а в авиационной поддержке.

Виктор Пелевин «S.N.U.F.F.»

Предыстория такова, что разработчики vsftpd (точнее её единственный разработчик под названием Крис Эванс) здраво рассудили, что ради безопасности надо бы запретить пользователям запись в корень своего chroot’а. То есть если пользователь по ftp chroot’ится в свою домашнюю директорию, то не пускать его в том случае, если у него есть права на запись в неё (можно писать только в поддиректории). Сказано-сделано. Выкатили версию 2.3.5 с этим изменением, а майнтайнеры репозиториев Ubuntu взяли, да и собрали эту версию в репы для 12.04 LTS. Оказалось, что после обновления у многих людей (у тех 99,9999% людей, которые не читают changelog’и) вдруг сломался доступ по ftp. И это при том, что не у всех ситуация позволяет просто так взять и отобрать права на запись в домашние директории. В общем всё это привело к тому, что на бедного Криса со всех уголков интернета полились ушаты говна, отчего он запилил версию vsftpd 3.0, куда добавил опцию конфига allow_writeable_chroot, возвращающую старое-доброе небезопасное поведение. Запилить-то запилил, но майнтайнеры Убунты заявлили, что собирать эту версию для своей 12.04 уже не будут и просто умыли руки.

В общем, решайте проблемы как хотите.

А решать проблемы можно несколькими простыми способами.

1. Первый способ – это скачать исходники vsvtpd-3.0 вот отсюда – https://security.appspot.com/vsftpd.html и скомпилировать их самостоятельно. После установки в конфиг можно будет добавить опцию:

allow_writeable_chroot=YES

Можно скомпилировать и старые версии до 2.3.5. Решение прямое и простое, но не ubuntu-way.

2. Секьюрный способ для ненастоящих джедаев – это сдаться и просто отобрать права на запись в домашние директории тем пользователям, которые ходят по ftp:

3. Третий способ – это воспользоваться расширенной сборкой vsftpd-ext, которую поддерживает наш соотечественник по имени Дмитрий. Ей в конфиге тоже можно указать опцию, возвращающую старое поведение. Только выглядит эта опция чуть по-другому:

4. Четвёртый хороший способ – это воспользоваться трудами доброго человека, который создал PPA на launchpad’e, куда положил собственную сборку vsftpd 2.3.5, в которую бэкпортнул опцию allow_writeable_chroot. Поставить отсюда сборку можно так:

sudo add-apt-repository ppa:thefrontiergroup/vsftpd
sudo apt-get update
sudo apt-get install vsftpd

Два других способа я не проверял, но встречал их на просторах сети. Впрочем, они всё равно мне не сильно нравятся.

5. Пятый способ – это добавить опцию local_root=/home в конфиге. Тогда chroot будет в директорию /home, а пользователь, перейдя в свой хомяк, сможет туда складывать файлы.

6. Шестой способ выглядит совсем неправдоподобным. Он говорит о том, что доманий каталог пользователя в /etc/passwd надо поменять на “/home/./user”, и вроде бы это обманет vsftpd.

В общем, есть из чего выбрать.

Tags: Linux, Ubuntu, vsftpd
Category:
Linux |
17 Comments »

Comments

Leave a comment

Skip to content

After upgrading vsftpd or vsftpd-ext you may be getting the following message when trying to log in.

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

This is due to the following update:

– Add stronger checks for the configuration error of running with a writeable
root directory inside a chroot(). This may bite people who carelessly turned
on chroot_local_user but such is life.

The problem is that your users root directory is writable, which isn’t allowed when using chroot restrictions in the new update.

To fix this you must either remove write permissions on the users root directory with the following command, replacing the directory with your users root:

chmod a-w /home/user

Or you can work around this security check by adding either of the two below into your configuration file.

For the standard vsFTPd build (vsftpd):

allow_writeable_chroot=YES

For the extended vsFTPd build (vsftpd-ext):

allow_writable_chroot=YES

Removing the write permission on the root isn’t a perfect solution as doing this can cause a few problems with things that need to write to the root directory, such as the bash history file or some graphical environments.

Dmitriy has suggested 3 ways to also overcome this problem, be sure to check them out.

Раздел: Linux
Написано: 10.01.2015

Автор: Antonio

При использовании новой версии сервера FTP vsftpd (2.3.5 и выше) при соединении с сервером в ряде случаев возникает ошибка — 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

vsftpd error 500 OOPS

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


Т.е. права записи у пользователя должны быть в поддиректории, иначе выдавать ошибку — 500 OOPS..

Возможно такие изменения и нужны, но хотелось бы чтобы можно было регулировать поведение из файла конфигурации, но это Very Secure FTP Daemon.

Решения данной проблемы есть:

1. Самое правильное — это убрать права на запись в корень подключения и сделать подкаталог, на который поставить нужные права.;

2. Использовать старую версию без таких нововведений (я бы не советовал);
3. Можно использовать сборку PPA на launchpad’e собранную с опцией allow_writeable_chroot (не наши методы :-) );
4. Использование расширенной сборкой vsftpd-ext (лучше все-таки стандартный вариант);
5. Создать виртуальных пользователей, можно с хранением логинов и хэшей паролей в MySQL (как вариант)

6. Самый простой способ, создаем пользователя как обычно, разрешаем запись в корневой каталог, меняем в файле /etc/passwd домашний каталог пользователя — добавляем в него путь с точкой. И добавляем в vsftpd.conf строку

Пример решения номер 6 строка из /etc/passwd:

aero_ftp:x:1004:33::/data/./aero_ftp:/bin/false

После этого пользователь aero_ftp сможет коннектиться и ошибки 500 OOPS vsftpd не будет.

Добрый день.
Объясните, пожалуйста, в чем суть данной ошибки?
Настраиваю vsftpd на ubuntu server 14.04 по этому гайду с help.ubuntu.ru
Мой vsftpd.conf
Как указано в help.ubuntu.ru я хотел сделать, для большей безопасности, что бы пользователь не мог выходить из своего домашнего каталога и я раскомментировал chroot_local_user=YES, но как только я его раскомментировал, то и попытался зайти на FTP через FileZilla, то получил ошибку

500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Ошибка:	Critical error: Невозможно подключиться к серверу

в этом же гайде написано,

Если при попытке подключения вы видите ошибку:

Ответ:	500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Ошибка:	Critical error: Невозможно подключиться к серверу

то вам надо изменить права на домашний каталог локального пользователя
sudo chmod a-w /home/user/

Т.е. изначально следующие права на домашнюю папку:

drwxrwxr-x  3 backupserver backupserver  4096 окт.   8 16:25 backupserver

А при выполнении этой команды стало:

dr-xr-xr-x  3 backupserver backupserver  4096 окт.   8 16:25 backupserver

Т.е., на сколько я понял, решение данной ошибки — это снятие атрибута Write c домашней папки. Да, при этом я могу логиниться на FTP, но при передачи файлов появляется ошибка:

Ответ:	553 Could not create file.
Ошибка:	Критическая ошибка при передаче файлов

Если я в vsftpd.conf комментирую chroot_local_user=YES, тогда я нормально логинюсь и могу передавать файлы, но получается, что пользователь не ограничен только в своей домашней директорией, я правильно понял?

Are you facing the error ‘500 oops vsftpd refusing to run with writable root inside chroot()’?

This guide is for you.

500 oops vsftpd refusing to run with writable root inside chroot() happens when attempting to connect to a vsftpd FTP server that is configured to jail (prevent from accessing other directories) each FTP user.

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to fix vsftpd related errors.

In this context, we shall look into the cause of this error to occur and also see how to fix it.

What causes ‘500 oops vsftpd refusing to run with writable root inside chroot()’ error ?

Generally, this error mainly occurs when you have newly installed the vsftpd on a Linux server and trying to FTP to it.

Also, after upgrading the vsftpd or vsftpd-ext, you may come across this error message while connecting to FTP.

Tips to fix vsftpd refusing error ?

The best fix is to create a separate Linux user specifically for FTP only that can’t log in via SSH.

In case, if you wish to remove the SSH access for a test user then you can run the below command:

$ usermod -s /sbin/nologin testuser

However, this will not completely fix the error. 

So we need to modify the user’s home directory to read-only.

Here, we are assuming the username to be testuser and the home directory to be /home/testuser. 

Then we run the below command:

$ chmod a-w /home/testuser

Finally, restart the vsftpd by running the below command.

$ systemctl restart vsftpd

Alternatively, you can try bypassing the writable check in the vsftpd config file by executing the below command:

$ echo 'allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf && systemctl restart vsftpd

[Need urgent assistance in fixing vsftpd errors? – We are here to help you. ]

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка 500 mail ru ваш почтовый ящик временно недоступен
  • Ошибка 500 joomla 3 админка не работает