Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsiTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
ProFTPD’s 530 Login incorrect reply is a generic authentication rejection. It does not prove that the password is wrong: PAM rules, account status, virtual-user files, shell policies, login limits, or home-directory permissions can all produce the same response. Start with the logs, verify the configuration that the running daemon actually loads, then test the relevant identity source and policy. The sequence below isolates the rejecting module without weakening security blindly.
What the 530 response means
FTP response code 530 means that ProFTPD refused the login. The protocol response intentionally gives little detail; a failed password, a denied PAM policy, an unknown account, a malformed virtual-user record, or a failed chroot can all be presented to the client as “Login incorrect.” Treat the code as a symptom, not a diagnosis.
Recommended Free Tools
A successful SSH login does not establish that FTP will work. SSH may use a different PAM service, a different account source, or a different set of shell and access rules. ProFTPD can combine PAM with Unix accounts, an AuthUserFile, SQL, LDAP, or another configured module, and the order and authority of those modules matter.
Use this troubleshooting order
- Capture the exact failure time and username, then read the authentication and ProFTPD logs.
- Identify the configuration file and included snippets loaded by the running service.
- Run a configuration syntax test before restarting anything.
- Confirm that the account exists in the identity source ProFTPD is configured to query and that its password and policy state are valid.
- Inspect the PAM stack and authentication-module order.
- If virtual users are enabled, validate
AuthUserFileandAuthGroupFile. - Check shell restrictions,
<Limit LOGIN>rules, and every directory permission needed for the home or chroot path. - Reproduce one attempt in foreground, high-debug mode to identify the rejecting module.
Change one item at a time and repeat a single login attempt. This keeps the log evidence attributable to the change.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
1. Read the logs before changing credentials
ProFTPD sends authentication messages through the auth or authpriv syslog facility. On a typical Ubuntu installation, useful evidence is in the system journal and /var/log/auth.log; a different syslog configuration may route those facilities elsewhere.
Search the journal
sudo journalctl --since "10 minutes ago" | grep -i -E 'proftpd|ftp|pam|530|username'
Replace username with the account used in the failed attempt. If the unit is logging directly to the journal, this narrower query may help:
sudo journalctl -u proftpd --since "10 minutes ago"
Search the traditional authentication log
sudo grep -i -E 'proftpd|pam|username' /var/log/auth.log
Look for the first specific message around the attempt, not only the client-facing 530. Messages naming PAM, an unknown user, an invalid shell, an unreadable file, or a chroot path identify a different fix. ProFTPD also logs configuration parsing errors; those can prevent the intended settings from loading at all.
2. Verify the configuration that is actually running
Ubuntu’s documented default configuration is /etc/proftpd/proftpd.conf, but a service can be started with -c and use another file. Included fragments can override or add authentication directives. Directives are case-insensitive, while their values are case-sensitive.
Inspect the service command line
systemctl cat proftpd
ps -ef | grep '[p]roftpd'
Check the ExecStart line and any -c option. Then inspect the main file and its Include directives, commonly under /etc/proftpd/conf.d/ or another package-specific directory:
sudo grep -RniE '^(Include|Auth|RequireValidShell|<Limit LOGIN>|DefaultRoot)' /etc/proftpd
Do not assume that editing the default file changes the running daemon if the unit points elsewhere. Authentication directives in an included file may also explain why a setting appears correct in the main file but has no effect.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Test syntax before restarting
sudo proftpd -t -c /etc/proftpd/proftpd.conf
Use the same configuration path discovered in the service definition. A successful test means the file parses; it does not prove that an account can authenticate. If the command reports an error, fix that first and test again. Restart only after the configuration test succeeds:
sudo systemctl restart proftpd
sudo systemctl status proftpd --no-pager
3. Confirm the Unix account and password state
First determine whether ProFTPD is intended to authenticate a local Unix account or a virtual account. For a local account, verify that the operating system can resolve it:
getent passwd username
id username
The result should include a UID, GID, home directory, and login shell. If getent returns nothing, the account is not available through the configured identity source. PAM cannot invent those identity attributes; they must come from a Unix account or from a ProFTPD source such as AuthUserFile, SQL, or LDAP.
Check password and account aging
sudo passwd -S username
sudo chage -l username
These commands expose whether the password is set and whether the account or password has expired. Also check local lockout controls used by your Ubuntu installation. If a lockout module is present, its status and reset procedure are defined by the PAM stack; do not remove the module merely to make FTP accept a login.
Reset a password only after confirming that ProFTPD uses this account:
sudo passwd username
Retest with credentials entered manually. FTP clients often cache a previous username or password, so clear the saved site entry or create a fresh connection profile before concluding that the reset failed.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
4. Inspect PAM and authentication order
Packages commonly use a PAM service file named /etc/pam.d/proftpd, although the exact name should be confirmed in the installed configuration and ProFTPD directives. Review that file and any included PAM fragments for account, shell, group, time, or deny rules.
sudo sed -n '1,240p' /etc/pam.d/proftpd
sudo grep -Rni 'AuthPAM' /etc/proftpd
ProFTPD uses PAM specifically to decide whether a user may log in; PAM alone does not provide the UID, GID, home directory, or other account metadata required for a session. Those details must resolve through the configured Unix, file, SQL, LDAP, or other authentication module.
Why SSH success can coexist with FTP failure
- SSH may read
/etc/pam.d/sshd, while ProFTPD reads a separate PAM service file. - FTP may apply
RequireValidShell, an/etc/shellscheck, or a<Limit LOGIN>rule that SSH does not. - An authoritative PAM or ProFTPD module can stop fallback to another module, so a valid password in one source is never tried against the next source.
- FTP may be configured for virtual users while SSH uses only local Unix users.
Change authentication order only when the log and configuration show that order is the problem. Removing an authoritative denial can bypass an intentional security policy.
5. Validate virtual-user files
If the configuration contains AuthUserFile or AuthGroupFile, inspect those files even when the username and password look correct. Confirm the configured path exists and that the daemon can read it:
sudo ls -l /path/to/virtual-users
sudo namei -l /path/to/virtual-users
ProFTPD expects a colon-delimited record format. A missing field or an extra colon can produce a log entry such as “Malformed entry in AuthUserFile/AuthGroupFile.” Repair the specific record rather than adding ad hoc fields. Keep ownership and permissions restricted so ordinary users cannot read password hashes or alter account metadata.
After editing, run the same configuration test used by the service and reproduce one login. If the file is generated from a database or deployment tool, correct the generator as well; otherwise the malformed record may return after the next update.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
6. Check shell, login, and account-policy restrictions
Shell validation
With RequireValidShell enabled, ProFTPD can reject an account whose shell is not considered valid. Check the shell recorded for the user and whether it appears in /etc/shells:
getent passwd username | cut -d: -f7
grep -Fx "$(getent passwd username | cut -d: -f7)" /etc/shells
PAM may apply its own shell allowlist or deny module. Inspect the actual ProFTPD PAM stack before changing the user’s shell or globally editing /etc/shells. A shell change made only to bypass FTP can affect other services.
Login limits and access rules
Search included configuration files for <Limit LOGIN>, AllowUser, DenyUser, group restrictions, and host-based rules. A rule matching the client’s address or group can deny a correct password. Check both the surrounding context and directive precedence; a restrictive block may be inherited from a global section.
Locked or expired accounts
An account can resolve correctly and still be denied because it is locked, expired, outside an allowed login time, or rejected by a group or access module. The PAM log normally identifies the policy type. Correct the account state or the intended policy, then retest; do not disable all account checks as a diagnostic shortcut.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →7. Check home-directory and chroot permissions
Once authentication succeeds, ProFTPD must enter the configured home or chroot directory. A user needs execute permission on every parent directory in the path, not merely read permission on the final directory. ProFTPD logs the path when it cannot chroot or enter it.
getent passwd username | cut -d: -f6
sudo namei -l /home/username
sudo -u username test -x /home/username && echo accessible
Repeat the check for the exact DefaultRoot or other chroot target shown in the configuration and log. Correct ownership or parent-directory permissions narrowly; avoid making an entire filesystem world-readable or writable. If a parent directory is intentionally inaccessible, choose a chroot location whose complete path the account can traverse.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
8. Use foreground debug mode for one controlled attempt
When ordinary logs do not identify the cause, run one test in the foreground with a high debug level. Stop the service first if it would otherwise bind the same FTP port:
sudo systemctl stop proftpd
sudo proftpd -n -d 10 -c /etc/proftpd/proftpd.conf
In this mode -n keeps the daemon in the terminal and -d 10 requests the highest documented debug level. Reproduce exactly one login, read which module or rule rejects it, and stop the foreground process with Ctrl-C. Restore normal service operation afterward:
Free tools Windows power users keep installed
One-click scans. No signup required.
sudo systemctl start proftpd
Use the same -c path and included files as the systemd service. Running a diagnostic daemon with a different configuration can create a convincing but irrelevant result. Debug output can expose usernames, paths, and policy details, so restrict terminal and log access and remove retained copies when finished.
Match the symptom to the likely fix
| Evidence | Likely cause | Action |
|---|---|---|
“Unknown user,” no account from getent |
Wrong identity source or username | Use the configured Unix, file, SQL, or LDAP source and verify the exact account name. |
| PAM reports expired, locked, denied, or disallowed account | Account policy rejection | Correct the specific policy or account state; keep required lockout and access controls. |
| SSH works but ProFTPD PAM rejects | Different PAM service or module order | Inspect the ProFTPD PAM file and AuthPAM* directives; do not infer FTP policy from SSH. |
| “Malformed entry in AuthUserFile/AuthGroupFile” | Missing field, extra colon, wrong path, or unreadable file | Repair the record and ownership/permissions, then run proftpd -t. |
| Invalid shell or shell-list message | RequireValidShell, PAM shell module, or /etc/shells |
Verify the intended shell policy before changing the account shell or allowlist. |
| Login limit or deny rule appears in the log | <Limit LOGIN>, user/group, or host restriction |
Adjust the matching rule only if the restriction is unintended. |
| Chroot or directory permission failure | User cannot traverse a parent or target path | Use namei -l, then grant the minimum required execute permission. |
| Manual test differs from service behavior | Different configuration path or included files | Compare systemd’s ExecStart with the diagnostic command and use one -c file. |
After login works: choose encrypted transport
Plain FTP sends credentials and data without encryption. If an existing application requires FTP semantics, configure FTP over TLS (FTPS) with a certificate and enforce encrypted sessions according to your deployment policy. Account authentication succeeding is not a reason to leave clear-text FTP exposed.
If FTP compatibility is not required, SFTP is a separate protocol carried by OpenSSH. It normally uses the SSH control channel rather than FTP’s separate control and passive data channels, which can simplify firewall and NAT rules. SFTP clients cannot connect to an FTPS endpoint, and an FTP client cannot be “switched” to SFTP without protocol support.
| Choice | When it fits | Operational considerations |
|---|---|---|
| Plain FTP | Only isolated, controlled environments where clear text is explicitly acceptable | Credentials and data are exposed; avoid on untrusted networks. |
| FTPS | An application requires FTP commands, but encryption is required | Deploy certificates and account for FTP control plus passive data ports and firewall/NAT settings. |
| SFTP | The client supports SSH file transfer and FTP semantics are unnecessary | Uses OpenSSH authentication and a single SSH-based transport model; configure SSH access separately from ProFTPD. |
Keep the fix secure and repeatable
- Record the exact configuration file, included fragment, identity source, and policy that resolved the error.
- Retain only the minimum permissions needed for
AuthUserFile,AuthGroupFile, certificates, and home directories. - Retest after package updates because PAM files and included ProFTPD snippets can change.
- Use a dedicated test account when possible, and remove it or disable it after validation.
- Do not publish debug logs: they can reveal account names, filesystem paths, and authentication decisions.
- When the error returns, compare the new log entry with the known-good configuration rather than repeatedly resetting passwords.
The durable solution is the one that makes the logs explain the rejection, keeps the intended account and policy controls intact, and uses encrypted transport for any network that is not fully trusted.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

