Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides 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

A vsftpd 550 response means the server rejected an operation that would change the filesystem. For an upload, the usual causes are write_enable=NO, missing Unix write or directory-traversal permission, a path outside the user’s effective chroot, or an account-specific restriction. Sign-in can succeed while every STOR, APPE or MKD request fails.

Identify the account type and exact remote path first, then check the effective vsftpd settings, Unix permissions on every directory in the path, chroot mapping, and the server log. Make the smallest change that grants the intended account access; do not enable anonymous uploads or use chmod -R 777 as a workaround.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What a 550 response means in vsftpd

FTP uses status code 550 when vsftpd refuses a filesystem-changing request. The text that follows the code is useful, but it is not a complete diagnosis: 550 Failed to open file, 550 Permission denied and 550 Create directory operation failed can all result from configuration, Unix permissions or an incorrect path.

The restriction applies to commands such as:

  • STOR — upload or replace a file
  • APPE — append data to a file
  • MKD — create a directory
  • RMD — remove a directory
  • DELE — delete a file
  • RNFR and RNTO — rename a file
  • SITE subcommands that change the filesystem

The vsftpd configuration reference describes write_enable as the switch that controls whether FTP commands that change the filesystem are allowed. Its default is NO. Therefore, a successful login proves authentication only; it does not prove that the session is allowed to write.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.

Use this diagnostic order

  1. Record whether the session is a local Unix user, anonymous user or virtual user.
  2. Record the exact FTP operation that returns 550 and the path shown by the client after login.
  3. Check the settings required for that account type in /etc/vsftpd.conf.
  4. Inspect ownership, mode and traversal permission on the destination and every parent directory.
  5. Account for chroot_local_user and the chroot list when translating the client path to a host path.
  6. Reload or restart vsftpd, reconnect, repeat one operation and compare the client transcript with the server log.

This order prevents a common mistake: changing directory modes when vsftpd has writing disabled, or enabling an insecure configuration when the real problem is simply that the client is addressing the wrong directory.

1. Identify the account and the real target path

Local, anonymous and virtual sessions are different

A normal local account is authenticated against the host’s users and needs local-login and write settings as well as Unix access. An anonymous session uses the anonymous FTP account and has a separate upload switch. Virtual users are handled through PAM-backed configuration and are anonymous-like by default unless their privilege mode is deliberately changed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do not enable anonymous upload to bypass a local user’s permission problem. That changes who may write and can expose an upload area to unauthenticated clients.

Capture the operation and path

Note whether the client is issuing STOR, APPE, MKD or a rename. Also note the remote working directory and the complete path displayed in the client’s transcript. A path that looks absolute to the FTP client is interpreted from the FTP session’s root. If the account is jailed, that root is not the server’s real /.

For example, if a user’s jail is /srv/ftp/ftpuser, a client request for /incoming/report.csv addresses /srv/ftp/ftpuser/incoming/report.csv on the host. It does not address /incoming/report.csv at the host root. A directory that exists elsewhere on the server cannot be used until it is inside the effective jail or the jail design is changed.

2. Check the effective vsftpd settings

Baseline for local-user uploads

For a conventional local-account setup, the relevant lines in /etc/vsftpd.conf are:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
anonymous_enable=NO
local_enable=YES
write_enable=YES

local_enable=YES permits local users to log in; write_enable=YES permits filesystem-changing FTP commands. Both are needed for local uploads. If write_enable is NO or absent (its documented default), vsftpd can authenticate the user and still reject every upload, directory creation and rename with 550.

Anonymous uploads require a separate policy

An intentional anonymous-upload design requires:

write_enable=YES
anon_upload_enable=YES

anon_upload_enable is disabled by default. The anonymous FTP account must also have write permission on the destination directory. The setting alone does not grant Unix access, and enabling it on a server that is meant to accept only authenticated users is the wrong fix.

Virtual users need their own review

With virtual users, check the PAM-backed setup, the effective privilege mode and the filesystem account to which virtual sessions map. The vsftpd reference notes that virtual users behave like anonymous users by default unless configured otherwise, so copying a local-user recipe can leave the session without the expected Unix identity or write rights.

Confirm the file that the running service actually uses

After editing the configuration, make sure the service you restart is the instance serving the connection and that it reads the file you edited. A persistent 550 after an apparently correct change can indicate a different service command line, an alternate configuration file or an override supplied by the service manager. Verify the running service before widening permissions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Check Unix ownership, modes and directory traversal

Inspect the complete path

Run these commands on the Ubuntu host, replacing ftpuser and the example path with the account and destination used by the session:

id ftpuser
ls -ld /srv /srv/ftp /srv/ftp/incoming
namei -l /srv/ftp/incoming

id shows the user’s numeric identity and group membership. ls -ld shows ownership and mode for each directory. namei -l walks every path component, making it easier to spot a parent directory that blocks traversal.

Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Understand the two directory permissions an upload needs

To create a file in a directory, the logged-in Unix identity needs write permission on that destination directory and execute permission on it. Execute permission on a directory means “may traverse and look up names”; without it, a directory can appear in a listing yet still reject access. The account also needs execute permission on every parent directory from the effective filesystem root to the destination.

For an existing file, the file’s ownership and mode can matter as well, particularly when the operation is an overwrite or append. A directory that is writable does not automatically make an existing, separately owned file writable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Correct ownership or group access deliberately

Assign the destination to the account or to a group intended for uploads, then grant only the required group and directory permissions. A set-group-ID upload directory can keep newly created files in the intended group, but choose the ownership model that matches the users and downstream processes on your server. Test with the same identity that vsftpd uses, not with a root shell.

Do not solve a 550 error with a blanket chmod -R 777. It grants write access to every local user and often masks an incorrect owner, group or path. It also makes later auditing and cleanup harder.

Remember ACLs and host security policy

If the owner, group, modes and path are correct but the transfer still fails, inspect any filesystem ACLs and host security controls such as AppArmor. A policy can deny access even when the traditional mode bits look permissive. The error should be correlated with the server-side log rather than guessed from the client message alone.

4. Evaluate chroot behavior

How the jail changes paths

When chroot_local_user=YES, a local user is confined to a jail rooted at the configured login directory. The FTP client sees that directory as /. Every upload target must therefore exist inside the jail and be writable by the jailed identity. A host path outside the jail is intentionally invisible, not merely inconveniently named.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

Read the chroot-list combination correctly

The meaning of chroot_list_file depends on the combination of chroot_local_user and chroot_list_enable. With local users chrooted, the list is used for users that are exempt; with local users not chrooted, the list identifies users that are jailed. Check both switches and the actual list file together.

Setting to evaluate Question to answer Typical 550 symptom
chroot_local_user Is this account confined to its login directory? The client addresses a directory that is outside the visible root.
chroot_list_enable Is a chroot list active? The account’s jail status is opposite to what you assumed.
chroot_list_file Which users are listed, and what does the current mode make the list mean? One user fails while another account with the same Unix permissions succeeds.

Put uploads in a writable subdirectory

A safer jail layout keeps the jail root controlled and creates a writable directory beneath it, such as /srv/ftp/ftpuser/incoming. Point the client to /incoming after login and grant the account access to that subdirectory. Do not make the jail root writable merely to silence a 550 response; the vsftpd reference warns about the security implications of a writable chroot root.

5. Treat umask as a file-mode choice, not an access grant

local_umask and anon_umask affect the permissions assigned to newly created files. They do not grant permission to create a file in a directory and cannot repair a missing directory write or traversal bit.

Set the appropriate umask only after a simple upload works. Choose it according to who should read or modify newly created files and whether a shared group is used. If MKD or STOR fails before a file is created, changing the umask will not change the outcome. If creation succeeds but the resulting mode is too restrictive for a cooperating process, then review the relevant umask and the directory’s group design.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

6. Reload, reconnect and use logs to separate the causes

Apply one controlled change

Save the configuration, then restart or reload the vsftpd service with the service manager used by your Ubuntu release. On a system using systemd, a typical restart and status check are:

sudo systemctl restart vsftpd
sudo systemctl status vsftpd

Reconnect the FTP client after the restart. Repeat one upload to the same remote path rather than testing several directories at once. This gives the log and client transcript one unambiguous event to compare.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

Enable or inspect transfer logging

The xferlog_enable option controls transfer logging. The vsftpd manpage documents the default log location for the Ubuntu build; inspect that log and any service diagnostics available on the host. Match the timestamp, username, command and target path with the client’s transcript.

A log entry showing that writing is disabled points back to write_enable or the account policy. An entry showing a filesystem failure points to ownership, traversal, ACLs, AppArmor or the translated chroot path. If there is no entry for the attempted operation, verify that the connection is reaching the instance and configuration file you just changed.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Fixes for the most common 550 messages

“550 Failed to open file” during STOR

  • Confirm write_enable=YES and, for a local user, local_enable=YES.
  • Check that the client’s current directory is the intended directory inside the jail.
  • Give the FTP identity write and execute permission on that directory and execute permission on every parent.
  • If replacing an existing file, inspect that file’s owner and mode as well as the directory.

“550 Permission denied” during upload or append

  • Use id, ls -ld and namei -l to verify the identity and path.
  • Check group membership and ACLs if the mode bits appear correct.
  • Do not change local_umask expecting it to grant directory access; it only influences modes after creation.

“550 Create directory operation failed” during MKD

  • Ensure the destination parent is writable and traversable by the account.
  • Check that the requested directory is inside the effective chroot.
  • Confirm that directory creation is not being rejected by a host security policy.

Rename fails while upload succeeds

Renaming requires access to the directory containing the source and destination names. A file can be uploaded successfully while a rename fails if the directory lacks the required write and execute permissions, or if the target path crosses a chroot boundary. Check the directory permissions and the exact RNFR/RNTO paths rather than changing file modes alone.

Anonymous upload fails while local upload works

Check anon_upload_enable=YES, retain write_enable=YES, and verify Unix write permission for the anonymous FTP account on the destination. A local user’s permissions do not transfer to anonymous sessions. Keep anonymous uploads disabled unless they are an intentional, isolated service requirement.

Choose between a configuration change and a filesystem change

When two fixes seem plausible, compare them against five facts:

  • Account type: local, anonymous or virtual sessions use different controls.
  • Operation: file creation, append, directory creation and rename have different path requirements.
  • Effective path: chroot can make a valid host path invisible to the client.
  • Ownership, groups and ACLs: the Unix identity must be able to traverse and modify the intended location.
  • Security impact: a narrow directory or group grant is safer than enabling anonymous writing or broad world-write permissions.

Prefer the smallest change that grants the intended account access to the intended directory. If a setting change would affect every user but the failure belongs to one upload directory, correct that directory’s ownership or group instead. If several users fail in every writable location, inspect the global write policy and the running service configuration first.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A final verification checklist

  • The client account type is known and matches the policy being edited.
  • The failed command and remote path are recorded.
  • local_enable=YES, write_enable=YES and the appropriate anonymous or virtual-user setting are effective.
  • The destination is inside the user’s effective chroot.
  • The logged-in identity has write and execute permission on the destination and execute permission on every parent.
  • Existing files being replaced or appended to have suitable ownership and mode.
  • Umask settings are being used only to shape newly created modes.
  • The service was restarted or reloaded, the client reconnected and one controlled test was repeated.
  • The server log and client transcript describe the same timestamp, account and path.
  • ACLs, AppArmor or an alternate service configuration have been considered if the basic checks pass.

Once these checks agree, a 550 response is no longer a vague FTP problem: it identifies a specific policy, identity, path or filesystem permission that can be corrected without opening the rest of the server.

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.