Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
World desk8 min

Fix vsftpd Refusing to Run With a Writable Root Inside chroot

vsftpd rejects a chroot directory writable by the FTP user. Make the jail root root-owned and non-writable, place uploads in a writable child directory, and use allow_writeable_chroot=YES only for unavoidable legacy compatibility.

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.

The secure fix is to make the directory used as the chroot root owned by root and non-writable by the FTP account, then create a writable child directory for uploads. Keep allow_writeable_chroot=NO (the default) unless a legacy application genuinely requires the jail root itself to be writable.

What the error means

The message 500 OOPS: vsftpd: refusing to run with writable root inside chroot() is a deliberate security refusal, not a syntax error in your FTP client. vsftpd is about to place a local user in a chroot jail, and the directory that will become that user’s apparent root is writable by the same user. With its default security policy, vsftpd will not start the session in that state.

As an Amazon Associate I earn from qualifying purchases.

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

The relevant setting is allow_writeable_chroot. The vsftpd configuration reference describes it as allowing a user to be chrooted to a directory writable by that user; its default is NO. The warning is that a jailed user could create an etc directory and influence configuration-file loading. The project FAQ states the rule plainly: “The home directory should NOT be owned by the ftp user itself. Neither should it be writable by the ftp user.”

This behavior is associated with vsftpd 2.3.5 and later guidance. If an upgrade suddenly produces the error, the upgrade may have moved you from an older package that tolerated the layout to a newer package that enforces the check.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Find the directory vsftpd is actually using as the jail root

Change the directory that is used for the chroot, not merely a convenient parent directory. Depending on the installation, the root comes from local_root, the user’s home directory, or a platform-specific equivalent. A per-user configuration can override the global file, so inspect both scopes.

  1. Read the active global configuration and note any chroot_local_user, chroot_list_enable, and local_root settings.
  2. Check whether the account has a per-user file or a platform-generated profile that supplies a different root.
  3. Resolve the resulting path for one affected account. That exact directory is the one whose ownership and write bits must be corrected.
  4. Record the current state before editing it. For example:
    ls -ld /srv/ftp/user
    stat -c '%A %U %G %n' /srv/ftp/user

If the displayed path is a home directory, treat it as the jail root even if uploads are supposed to land in a subdirectory. If a managed appliance generates the configuration, identify the supported template or management interface before making a manual edit.

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

Preferred fix: non-writable jail root with a writable child

This layout preserves the chroot boundary while still allowing uploads. The FTP account can traverse the jail root and write inside a designated child, but it cannot alter the directory that represents the root of its jailed filesystem.

1. Remove write permission from the actual root

Make the jail root owned by root and remove write permission for the FTP user. The vsftpd FAQ gives this pattern:

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
chown root ~ftp
chmod -w ~ftp

Replace ~ftp with the real jail path. If you need to preserve an existing administrative group, change only the owner and keep the intended group; the essential property is that the FTP account does not own the root and cannot write to it. Dell’s documented equivalent is:

chmod a-w /home/user

Again, substitute the directory that is actually used as the chroot root. Review the result:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
ls -ld /home/user

The mode should show no w bit for the FTP account. Do not use a broad recursive permission change on the whole tree: files and directories below the root may need different access.

2. Create a separate upload directory

Create a child directory below the protected root, and grant ownership and mode only to the account or group that must receive uploads. An ArchWiki example uses this shape:

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
/srv/ftp/user          # chroot root, mode 550
/srv/ftp/user/upload   # writable child, mode 750

The exact owner and group for upload depend on which account performs the transfer and whether another local process consumes the files. Set those deliberately, then apply the documented mode:

mkdir -p /srv/ftp/user/upload
chmod 550 /srv/ftp/user
chmod 750 /srv/ftp/user/upload
ls -ld /srv/ftp/user /srv/ftp/user/upload

Mode 550 gives the jail root read and traversal access without write permission. Mode 750 gives the upload directory full access to its owner, read and traversal access to its group, and no access to other users. If your service account is not the owner, assign a group that includes it and verify that the group bits provide the required access. Avoid granting write permission to every user simply to make a client work.

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

3. Point clients at the child path

After login, the user sees the jail root as /. An upload target such as /upload therefore maps to the host path /srv/ftp/user/upload in the example. Update the client, application, or automated job to use that child directory rather than attempting to write directly to /.

4. Reload the service and test both operations

Use the service mechanism supplied by your Linux distribution to reload or restart vsftpd. On a systemd-based host, the usual commands are:

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
sudo systemctl restart vsftpd
sudo systemctl status vsftpd

Then test with an account that is subject to the chroot policy:

  1. Log in and confirm that the session starts without the 500 error.
  2. List the top-level directory and confirm that upload is visible.
  3. Upload a small test file into /upload.
  4. Attempt to create a file directly in /; it should fail.
  5. Verify on the server that the test file has the expected owner, group, and mode.

A successful upload together with a failed write at the jail root demonstrates that the security boundary is working as intended.

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.

Why a writable upload directory does not require a writable chroot root

Chroot changes the process’s view of the filesystem; it does not require every directory in that view to be writable. The root of the jail can be a read-only anchor, while a descendant supplies the write location. This separation prevents the FTP user from changing the directory structure that vsftpd treats as the root of the jailed environment.

Confusing these two permissions is the usual reason administrators enable the override unnecessarily. “Users must upload files” means a specific descendant needs write permission. It does not, by itself, mean the directory used by chroot() must be writable.

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

Workaround: allow a writable chroot root only when required

If a legacy workflow truly writes directly to the chroot root and cannot be changed to use a child directory, you can override the check:

allow_writeable_chroot=YES

The setting can be placed in the global configuration or in the per-user configuration mechanism provided by the installation. A global setting affects every account to which the relevant chroot policy applies; a per-user setting limits the exception to selected accounts. Confirm which scope your platform supports before assuming that a line in the global file will affect a managed user.

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

This is a compatibility workaround, not the preferred security posture. The vsftpd configuration reference warns that permitting a writable chroot can create security problems because a jailed user may create an etc directory and influence configuration-file loading. Use the override only after documenting why the application cannot write to a child directory and after reducing the account’s other privileges.

Remediation Security boundary Application compatibility Operational durability Scope
Root-owned, non-writable jail root plus writable child Strongest; the chroot anchor cannot be modified by the FTP account Works when clients can target a subdirectory Usually survives package upgrades when filesystem ownership is preserved Applies to each jail layout
allow_writeable_chroot=YES Weaker; the account can modify the chroot root Supports legacy clients that write directly to the root Configuration scope may need reapplying after upgrades or appliance regeneration Global or per-user, depending on the installation

Upgrade and managed-appliance considerations

Dell documents this failure after OneFS upgrades that moved systems from older to newer vsftpd packages. The filesystem layout may have been accepted before the upgrade and rejected afterward because the newer package enforces the non-writable-root rule.

On managed appliances, a direct edit to a generated vsftpd configuration template may not persist across an upgrade. Keep a record of the supported configuration source, reapply the filesystem ownership and mode through the platform’s management process, and verify the effective configuration after maintenance. If the platform exposes only a global override, weigh its effect on every chrooted account before enabling it.

Troubleshooting when the error or permission failure remains

The error appears after you changed permissions

  • Wrong directory: The account may use a per-user local_root or a platform-specific path. Resolve the effective root for that account instead of assuming its conventional home directory.
  • Write permission remains: Check the owner, group, and mode with ls -ld. A write bit granted through the owning group or “other” still makes the root writable to the account if it belongs to that group.
  • Another configuration is active: A generated file or per-user profile may still set allow_writeable_chroot=YES or point the user at a different directory. Inspect the configuration source that the service actually loads.
  • The service was not reloaded: Restart or reload through the distribution’s service manager, then check its status and logs for the active configuration error.

Login works but uploads fail

  • Confirm that the client is uploading to the writable child, such as /upload, not to the jailed root /.
  • Check the child directory’s owner, group, and mode. The account must have write and traversal permission there.
  • Check each parent directory for traversal permission. A writable child cannot compensate for a parent that the account cannot enter.
  • Compare the account used by the client with the account whose permissions you inspected; automated jobs often use a different local user.

Uploads work but the jail is still rejected on the next restart

Recheck the root directory after every configuration or package change. If an installation script recreates the home directory with the FTP account as owner, restore root ownership and remove its write bit, then investigate the package or platform setting that is recreating it. On managed systems, make the correction in the supported template rather than only in a generated file.

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

Practical validation checklist

  • The effective chroot path is known for each affected account.
  • The chroot root is owned by root, not by the FTP user.
  • The FTP user has no write permission on that root through owner, group, or other bits.
  • A dedicated child directory exists for uploads.
  • The child has only the ownership and mode required by the upload workflow.
  • Clients are configured to write to the child path.
  • vsftpd has been reloaded or restarted using the platform’s service mechanism.
  • A login test succeeds, an upload to the child succeeds, and a write attempt at the jail root fails.
  • After an upgrade, the effective configuration and filesystem modes have been checked again.

Choosing between the two fixes

Use the protected-root layout whenever you can change the upload path. It satisfies the security check without sacrificing uploads and keeps the exception out of the global policy. Choose allow_writeable_chroot=YES only for a documented compatibility requirement, prefer the narrowest available per-user scope, and treat the setting as a deliberate weakening of the jail boundary rather than as a routine fix.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

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

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.