iPhone Files app says the SMB share is read only: how to fix it
By Isaac Griffiths, developer of SMBDrop ·
You connect to your NAS or shared folder from the Files app, the folders appear, you can open files, and then nothing. New Folder is greyed out, Paste does nothing, and saving fails. Meanwhile your Mac or Windows PC writes to the same share, with the same account, without complaint.
If that started after an iOS update, you're in good company. The Apple Community thread "How to resolve SMB server read-only access on iPhone?" has over 200 "Me too" votes, and most of the reports start with iOS and iPadOS 18.0 in September 2024. This guide covers the real permission check first (because sometimes the share really is read only), then the server-side fix that has worked for many people who reported it.
Short version: if another device can write with the same username, the fix that has worked for many people is adding vfs objects = streams_xattr to the [global] section of the server's Samba config and restarting it. Appliances like Unraid, OpenMediaVault and QNAP need their own route, covered below.
Step 1: Make sure it isn't a real permission problem
Before you edit anything on the server, rule out the boring causes. They're quicker to fix.
- Test from another device with the same username. Sign in from a Mac or PC as exactly the account the iPhone uses and try to create a folder. If that fails too, it's permissions, not iOS.
- Check you aren't signed in as Guest. In Files, eject the server (Browse, then the Eject button next to it under Shared), then reconnect with Connect to Server and choose Registered User. Files can hang on to an older or limited login, so a clean reconnect is worth doing anyway.
- Check the share and folder permissions. On a Synology the levels are No access, Read/Write and Read only. On Unraid, a share set to Secure gives everyone, guests included, read access only, so your user needs to be given write access explicitly. On Windows, the account needs both the share permission and the folder's own (NTFS) permission, as covered in the Windows shared folder guide.
- On Linux, check the folder underneath. Samba can say a share is writable while the directory itself isn't writable by the mapped user.
ls -ldon the share path tells you who owns it.
If everything checks out and other clients can write, the problem is the one below.
Why iOS 18 started doing this
Nobody outside Apple knows the exact reason, and Apple hasn't said anything. The working theory from people who've dug into it is that the Files app now checks for named streams or extended attributes on the server, and if that check fails it falls back to read only. A packet capture posted in the Apple thread, from iPadOS 18.0 against Windows 10, Windows 11 and Windows Server 2016, showed the server granting full access when the share was connected, while the files themselves were then opened read only. So this isn't only a Samba thing: Windows servers were caught too.
Reports continue through iOS 18.1, 18.2 and 18.5, and one person saw it on iPadOS 26. I haven't found any reports specific to iOS 27, which doesn't mean it's gone. There was also an older, separate wave of read-only reports with iOS 14.5.
Step 2: The fix for Samba (Linux, Raspberry Pi, most DIY servers)
Edit /etc/samba/smb.conf and add this line to the [global] section. If there's already a vfs objects = line, add streams_xattr to the end of it rather than adding a second line.
[global]
vfs objects = streams_xattr
If you'd like fuller macOS compatibility at the same time, the stack many people use is:
vfs objects = catia fruit streams_xattr
Then check the config and restart Samba:
testparm
sudo systemctl restart smbd
On some distros the service is called smb rather than smbd. Then eject and reconnect on the iPhone.
A few things that tripped people up:
- On Debian 12, one poster needed the
samba-vfs-modulespackage installed before the module would load. - The filesystem under the share has to support extended attributes. An Ask Different answer suggests testing with
getfattr -d -m '' -- somefile. - One r/selfhosted user found the full fruit stack didn't help, but
vfs objects = streams_xattron its own under[global]did (Samba 4.22.4 on Debian 13), and several replies confirmed the same. - Setting
vfs objectsinside a share section overrides the global one for that share, so check your share blocks too.
If you're setting up a Pi from scratch, the Raspberry Pi Samba guide includes these lines from the start.
Step 3: NAS and appliance fixes
Unraid
Go to Settings → SMB and set Enhanced macOS interoperability to Yes. You have to stop the array to change it. Results in the Unraid forum thread are mixed: it fixed it for one person and not for another, even after a reboot. An older thread reports that turning the option off produced read-only access, so it's worth trying. The Unraid and TrueNAS guide covers users and share security.
OpenMediaVault
Adding the vfs line by hand didn't work for one OMV user. What did: enabling Time Machine support on the share, under Services → SMB/CIFS → Shares.
QNAP
A QNAP owner in the Apple thread fixed it over SSH with:
setcfg global "VFS Objects" streams_xattr -f /etc/config/smb.conf
It takes effect straight away, but it doesn't survive a Samba service restart or a reboot of the NAS, so you'll need to run it again (or script it) after each one.
TrueNAS SCALE
The global option is Enable Apple SMB2/3 Protocol Extensions in the SMB service's advanced options. I haven't found a TrueNAS source saying it fixes the iOS read-only problem specifically, so treat it as something to try rather than a known fix.
Windows
Windows was affected according to that packet capture, and there's no smb.conf to edit. Do the permission checks in step 1, and see the workaround below.
WD My Cloud and Fritz!Box routers
People reported these as affected with no fix they could apply themselves. WD support said it couldn't guarantee the Files app works, and AVM said it was working on a fix.
Synology
I haven't found a report either way on whether Synology DSM shares were hit by this. If your Synology share is read only from the iPhone, start with the permission checks above and the DSM 7.2 settings to check.
If you can't change the server
People in these threads worked around it by writing with a third-party SMB client instead of the Files app (FileBrowser, GoodReader and others are mentioned). Third-party apps use their own SMB code, so they don't necessarily behave the same way. The best SMB apps for iPhone compares the main ones.
Where SMBDrop fits
Disclosure: I make SMBDrop. It's an app for sending photos, videos and files from an iPhone to an SMB share. It talks to the same server as the Files app, so if the account really is read only, or the server is refusing writes, the fixes above still apply. I haven't tested it against a server that's missing streams_xattr, so I'm not going to claim it gets around this. If you do use it, check that Settings → Privacy & Security → Local Network is turned on for SMBDrop, because third-party apps need that permission to reach your NAS. It's £9.99 once, with no subscription and no account.
If you mostly move photos, the Files app's other limits are worth knowing too. For other connection errors, see the Files app can't connect to server and "Content Unavailable" on an SMB share.
FAQ
Why is my SMB share read only on iPhone but writable on my computer?
Since iOS 18, many people have found the Files app opening SMB shares read only. Apple hasn't documented why, but the working theory is that it happens when the server doesn't support Apple's streams and extended attributes. On Samba, adding vfs objects = streams_xattr to the global section and restarting Samba has fixed it for many people who reported it. Check the account's real permissions first.
Does this only affect Samba servers?
No. A packet capture shared on Apple's forums showed Windows 10, Windows 11 and Windows Server 2016 affected too, and users reported Unraid, OpenMediaVault, QNAP, WD My Cloud and Fritz!Box devices.
Do I need the full fruit configuration?
Not always. Several people found that vfs objects = streams_xattr on its own was enough, and one found the full fruit stack didn't help until streams_xattr was in the global section. The catia fruit streams_xattr stack is a common choice if you also use Macs.
Will the QNAP setcfg fix survive a reboot?
No. The setcfg command takes effect straight away but doesn't persist across a Samba service restart or a NAS reboot, so you have to run it again afterwards.
More guides
- iPhone Files app can't connect to server (smb://): every fix
- "Content Unavailable" when opening an SMB share on iPhone
- Use a Raspberry Pi as an iPhone photo backup target (Samba)
- How to send iPhone photos and files to Unraid or TrueNAS over SMB
- How to copy files from an iPhone to a Windows shared folder
- The iPhone Files app's Connect to Server: what it can and can't do
- Best SMB apps for iPhone (2026): file managers, players and backup
