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


To totally unlock this section you need to Log-in


Login

These instructions are intended specifically for solving the error: 500 OOPS: vsftpd: refusing to run with writable root inside chroot().

Why use Chroot jail in VSFTPD?

Chroot jail is used for that any user login to ftp cannot access filesystem outside of its home directory. For example if chroot is not enabled and login to ftp server and try to access any location like /etc/httpd/conf for /etc directories.

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

The Fix

This error may occur when attempting to connect to a vsftpd FTP server that is configured to jail (prevent from accessing other directories) each FTP user. It is best practice to create Linux users specifically for FTP, that can’t login via SSH. For example, if you wanted to remove SSH access for testuser, then you’d use the following command:

usermod -s /sbin/nologin testuser

However, that will not address the problem listed in the error. To do that, you must make the user’s home directory read only. Assuming the username is testuser and the home directory is /home/testuser, then execute the following command:

chmod a-w /home/testuser

For good measure, be sure to restart vsftpd:

systemctl restart vsftpd

Alternative Fix

Alternatively, you can bypass the writable check in the vsftpd config file by running the following two commands:

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

systemctl restart vsftpd