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

Why does FTP say 553 Could not create file on CentOS 7? In a typical vsftpd installation, the server accepted your login and directory listing but refused to create the destination file. Why can I list files but not upload? Listing requires read and directory-search access; uploading additionally requires the correct FTP-visible path, directory write and execute permissions, an enabled vsftpd write policy, a safe chroot layout, and SELinux permission. Check those layers in that order instead of making the whole filesystem writable.

What FTP 553 means

FTP status 553 is a server-side refusal to create or open the requested destination file. It is not a generic client transfer error and usually does not mean the file you selected on your workstation is damaged. The refusal occurs when the account cannot create a file at the path that vsftpd resolves for the session.

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

CentOS 7 vsftpd troubleshooting is easiest when you separate four controls:

  1. Path resolution: pwd, local_root, chroot processing, and per-user configuration determine which directory the FTP session actually sees.
  2. Linux discretionary access control (DAC): the account needs write and execute permission on the destination directory and execute permission on every parent directory.
  3. vsftpd policy: local or anonymous logins and uploads must be enabled, and a per-user file can override the global configuration.
  4. SELinux: file labels and policy booleans can deny a write even when Unix ownership and mode bits look correct.

A directory listing proves only that the account can read and search that directory. It does not prove that a new directory entry may be created there.

#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.

Before changing permissions, capture the exact failure

Use a uniquely named, small test file and record the remote path shown by the client. Do not test by uploading into an arbitrary system directory. In the FTP session, run:

pwd
ls -la

Note whether the client displays a virtual root such as / while the host stores the files under a longer path. Keep the username, requested filename, timestamp, and server-side path together; those details let you match a denial in /var/log/vsftpd.log or the system journal later.

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.

Step 1: Confirm the path the FTP session actually sees

The most common mistake is checking a host path that is not visible inside the FTP session. A local user may be mapped by local_root; chroot_local_user may place the session in a jail; and a file in user_config_dir may assign a different root for one account. A directory can exist on the server and still be outside the session’s reachable tree.

Compare the FTP path with vsftpd configuration

  1. Run pwd and ls -la after login. Identify the directory in which the client is attempting to create the file.
  2. On the server, inspect the effective settings in /etc/vsftpd/vsftpd.conf, especially local_root, chroot_local_user, user_config_dir, and any setting that changes the local user’s starting directory.
  3. If user_config_dir is configured, open the file named for the affected account and check for a per-user local_root, write_enable, or other overriding value.
  4. Map the FTP-visible directory to its real host path before running permission or SELinux commands. Test the exact child directory where the new file should be created, not merely the user’s home directory.

For example, if the session reports /incoming, that may correspond to /srv/ftp/alex/incoming after chroot and local-root processing. Running ls -ld /incoming on the host could inspect an entirely different directory.

Step 2: Check Linux ownership and directory permissions

As root, inspect every component of the resolved host path and confirm the account identity:

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
namei -l /path/to/upload
ls -ld /path/to/upload
id ftpuser

namei -l exposes permissions on each parent, which is important because a user needs execute (x) permission to traverse every directory in the path. The destination directory itself needs both:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Write (w): permits creating, removing, or renaming directory entries, subject to other controls.
  • Execute (x): permits looking up entries and accessing objects through that directory.

Read (r) is useful for listing names but is not a substitute for write and execute. This is why an account can run ls successfully and still receive 553 during upload.

Correct the narrowest ownership or group rule

Prefer assigning the upload directory to the FTP account or to a dedicated group rather than opening the entire tree. For a single-user directory, an ownership change may be appropriate:

chown ftpuser:ftpuser /path/to/upload
chmod 750 /path/to/upload

Those values are examples, not universal requirements. Preserve any existing group and mode design that other services depend on. For shared uploads, add the account to the intended group and grant group write and execute permissions on only the required directory. Check the resulting mode with ls -ld and verify the account’s supplementary groups with id ftpuser.

Do not respond to 553 by applying chmod -R 777 or making a whole web, home, or data tree world-writable. That can let unrelated local users alter or replace uploaded files and creates a larger security problem than the original transfer failure.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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.

Step 3: Verify vsftpd allows the type of upload you are attempting

Linux permissions are only one gate. For authenticated local users, the global configuration normally needs:

local_enable=YES
write_enable=YES

For anonymous uploads, the anonymous-write policy must also be enabled and the destination must be intentionally writable. Do not enable anonymous writing merely to make a test succeed; anonymous upload directories require a separate threat assessment, monitoring, and cleanup plan.

Settings that frequently explain an unexpected denial

  • local_enable controls whether local system accounts may use FTP.
  • write_enable is the master switch for commands that change the filesystem, including uploads.
  • local_umask controls default permission bits on newly created files. It can make an uploaded file less accessible after creation, but it does not grant the directory permission needed to create the file.
  • local_root changes where a local user’s session starts and can make a correct host path invisible.
  • user_config_dir allows per-user files to override global values. Always inspect the affected user’s file when only one account fails.

After editing /etc/vsftpd/vsftpd.conf or a per-user file, reload or restart vsftpd according to how the service is managed on the host. A configuration edit that has not been loaded cannot change the result.

Step 4: Make the chroot layout writable without weakening the jail

Many deployments put local users in a chroot jail. The jail base is commonly kept non-writable to satisfy vsftpd’s safety expectations, while a child directory below it is writable. The FTP-visible path must point to that child.

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

Recommended placement pattern

  1. Keep the chroot base owned and protected so the jailed account cannot rewrite the jail itself.
  2. Create a child such as incoming or uploads beneath the base.
  3. Give the FTP account or its dedicated group write and execute permission on that child only.
  4. Log in again, run pwd, change to the child with cd, and upload there.

If you grant write access to the jail base simply to bypass an error, you may violate the daemon’s safety model and expose configuration or other users’ files. Correct the mapping so the account writes below the protected base instead.

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.

Step 5: Check SELinux labels and booleans

SELinux can reject a write independently of Unix mode bits. Red Hat documents that files labeled public_content_t are read-only even when Linux permissions allow writing; a directory intended for FTP read/write needs the public_content_rw_t type.

Inspect enforcement, labels, and denials

getenforce
ls -Zd /path/to/upload
ausearch -m AVC -ts recent

Use the audit log or system journal to correlate an AVC denial with the time and path of your test upload. If getenforce reports Enforcing and the label is a read-only public-content type, changing chmod alone will not solve 553.

Apply a read/write content context

For a quick diagnostic, an administrator can apply the read/write type with chcon:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
chcon -t public_content_rw_t /path/to/upload

chcon changes the current label but is not a persistent file-context rule; a relabeling operation can remove it. For a durable deployment, define the path with the system’s persistent file-context mechanism and then restore labels:

semanage fcontext -a -t public_content_rw_t '/path/to/upload(/.*)?'
restorecon -Rv /path/to/upload

The semanage command may require the policy-management package installed on the server. Use a path expression that covers the intended upload tree, not an unnecessarily broad filesystem location.

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 only the Boolean required by the account type

Anonymous FTP uploads require the documented SELinux Boolean that permits anonymous FTP writes. On policies that expose the conventional name, an administrator may use:

setsebool -P allow_ftpd_anon_write on

Verify the Boolean name on the installed policy with getsebool -a | grep ftp before changing it. Authenticated users writing to their home directories may also require the ftp_home_dir Boolean:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
setsebool -P ftp_home_dir on

Enable only the Boolean that matches the actual design. Do not disable SELinux globally as a first response; that removes policy protection instead of fixing the path, label, or narrowly scoped permission.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Step 6: Reload, perform a controlled upload, and read the logs

  1. Reload or restart vsftpd after configuration changes.
  2. Reconnect with the affected account so a new session receives the current chroot and per-user settings.
  3. Upload a uniquely named small file into the verified FTP-visible writable child.
  4. Check /var/log/vsftpd.log and the system journal for the same timestamp. An FTP reply alone may not identify whether the refusal came from path resolution, DAC, vsftpd policy, or SELinux.
  5. Confirm the file’s owner, mode, and SELinux context on the server.
  6. Remove the test artifact and retain only the permissions and policy changes that are required.

If the upload succeeds only after one particular change, revert unrelated broad changes and document the minimal fix. That leaves a smaller attack surface and makes future incidents easier to diagnose.

Why listing works while uploading fails

FTP directory listing and file creation exercise different permissions. Listing can succeed when the account has read access to directory entries and execute access to traverse the path. Creating a new file additionally requires write access on the destination directory. Even with those mode bits, vsftpd can reject write commands when write_enable or the relevant local or anonymous setting is off, and SELinux can reject the kernel operation when the directory has a read-only content label. A chroot can also make the client-visible path differ from the path you inspected as root.

Match the symptom to the likely layer

Symptom Likely cause First check Safer correction
Every upload fails, including for users who previously worked Global write_enable is disabled, or the destination mapping changed Global configuration and pwd in a fresh session Enable the required write policy and correct the mapped child directory
One user fails while another can upload to the same service Per-user configuration, ownership, group membership, or a different local_root Affected user’s file under user_config_dir, id, and namei -l Change only that account’s mapping or directory access
Listing works but upload fails in one directory Destination lacks directory write or execute permission ls -ld on the destination and namei -l on every parent Grant narrow owner or group write and execute access
Unix permissions look correct, but AVC records appear SELinux type or Boolean denies the operation getenforce, ls -Zd, and ausearch -m AVC -ts recent Use public_content_rw_t with a persistent context rule and the required Boolean
The host directory exists, but the FTP client cannot reach it Chroot or local_root hides the host path pwd, ls -la, and the effective root settings Place a writable child inside the visible jail and upload there

Compare the available remediations

Remediation Cause addressed Security impact Scope Persistence
Adjust owner, group, or directory mode Linux DAC denial Narrow when limited to the upload directory; risky when applied recursively or to “other” One directory or user group Persistent until ownership or mode changes
Enable local or anonymous write settings vsftpd policy denial Allows filesystem-changing FTP commands for the selected class of users Global or per-user, depending on the setting Persistent in configuration after reload
Move writes to a child below the chroot base Path mapping and chroot safety conflict Preserves a protected jail base while exposing one writable area Affected jail or user Persistent in directory layout and configuration
Apply chcon -t public_content_rw_t SELinux type mismatch Enables the intended write type but can be lost during relabeling Selected path Runtime label change; not a persistent file-context rule
Add a persistent semanage fcontext rule and run restorecon SELinux type mismatch Maintains the narrowly scoped label across relabeling Selected path expression Persistent policy mapping
Enable the required SELinux Boolean SELinux policy capability Expands permitted FTP behavior for the matching use case Policy-wide for that Boolean Persistent with -P; verify necessity first

Security checks after the upload works

  • Keep the jail base protected and expose only a writable child.
  • Use a dedicated group or account rather than world-writable permissions.
  • Limit SELinux context rules to the actual upload tree.
  • Enable anonymous writing only when anonymous transfer is an explicit requirement; otherwise use authenticated local accounts.
  • Review the resulting owner, mode, and SELinux context on a newly uploaded file.
  • Monitor vsftpd and audit logs for unexpected upload attempts and remove temporary test files.

The durable fix is the smallest combination of path correction, directory access, vsftpd write policy, chroot placement, and SELinux labeling that permits the intended account to create files. Once those layers agree, FTP 553 disappears without weakening the rest of the CentOS 7 host.

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

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.