The "421 Home Directory Not Available – Aborting" error occurs when a user tries to log in to an FTP server but cannot access their home directory. The problem is usually due to incorrect permissions, ownership issues, or configuration errors.
This guide will explain in simple steps how to diagnose and fix this error by ensuring correct permissions. Whether you are using vsftpd, ProFTPD, or Pure-FTPd, these solutions will work.
Before adjusting permissions, first confirm that the home directory exists.
Each user has a home directory stored in the /etc/passwd file. Run this command to check:
(Replace username with the actual FTP username.)
/home/username) is the user's home directory./bin/bash) is the default shell.Run this command:
If you see:
The home directory is missing – you must create it (see Step 2).
If the home directory does not exist, create it manually.
The -p flag ensures the directory is created without errors.
Set ownership so the user has full access:
To prevent login failures, set the correct permissions:
Some FTP servers (e.g., vsftpd with chroot_local_user=YES) reject home directories with write permissions for others.
Note: If using ProFTPD, use 755 instead:
Each FTP server has different settings. You must ensure it allows users to access their home directory.
If you're using vsftpd, open the configuration file:
Make sure these settings exist:
Save the file (CTRL + X, then Y, then ENTER) and restart vsftpd:
If you're using ProFTPD, edit the configuration file:
Ensure this is set:
Save and restart ProFTPD:
If you're using Pure-FTPd, check your home directory settings:
Ensure this setting is enabled:
Save and restart Pure-FTPd:
After making changes, restart all services to apply the updates.
Try logging into your FTP server:
If login is successful, you will see:
If you still see the error, continue with Step 5.
If you are on CentOS or RHEL and the issue persists, SELinux might be blocking FTP access.
If SELinux is enabled, fix FTP access:
If your server runs out of disk space, FTP users may not be able to access their home directories.
If /home is full, clean up space:
Try connecting again:
If Successful:
If Still Failing:
| Step | Action |
|---|---|
| 1 | Check if the home directory exists (ls -ld /home/username) |
| 2 | If missing, recreate it (mkdir -p /home/username) |
| 3 | Set correct ownership (chown username:username /home/username) |
| 4 | Set correct permissions (chmod 750 /home/username) |
| 5 | Ensure FTP server settings allow access (modify /etc/vsftpd.conf, /etc/proftpd/proftpd.conf, or /etc/pure-ftpd.conf) |
| 6 | Restart services (systemctl restart vsftpd or proftpd or pure-ftpd) |
| 7 | Check SELinux/AppArmor if using CentOS/RHEL (setsebool -P ftp_home_dir 1) |
| 8 | Verify disk space is not full (df -h) |
| 9 | Test FTP login (ftp yourserver.com) |
By following this guide, even beginners can troubleshoot and fix "421 Home Directory Not Available – Aborting" by ensuring correct permissions.