Suddenly, '"user" CIFS mounts not supported"

About two weeks ago, I added the following to my fstab so Fedora 35 would automatically mount my NAS at startup:

//192.168.1.2/home /mnt/NAS cifs defaults,_netdev,iocharset=utf8,credentials=/home/dave/secret.txt,uid=1000,gid=1000 0 2

I created the mount point and took ownership of it with:

sudo mkdir /mnt/NAS
sudo chown dave:dave /mnt/NAS

All was well with the world.

Yesterday, I think, I got a kernel update and now I can no longer access the NAS directly from Dolphin. When I try, I get:

An error occurred while accessing ‘Home’, the system responded: This program is not installed setuid root - “user” CIFS mounts not supported.

If I go to the NAS from within Dolphin by specifying its address:

smb://192.168.1.2

No problem. It works fine.

Did something change with the new kernel? I see one other post here about suddenly losing access to a mounted SMB drive. But, that turned out to be a problem with Windows doing something.

Throwing a wider net, I found a similar issue:

The solution is to set the suid bit on 3 files:

sudo chmod u+s /bin/mount
sudo chmod u+s /bin/umount
sudo chmod u+s /usr/sbin/mount.cifs

Before I blindly do that, can anyone explain what happened and confirm that the above is the solution?

EDIT: forgot my system information:

Operating System: Fedora Linux 35
KDE Plasma Version: 5.24.4
KDE Frameworks Version: 5.91.0
Qt Version: 5.15.2
Kernel Version: 5.17.9-200.fc35.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 5600X 6-Core Processor
Memory: 15.6 GiB of RAM
Graphics Processor: AMD Radeon RX 6800 XT

According to:

"The SetUID bit enforces user ownership on an executable file. When it is set, the file will execute with the file owner’s user ID, not the person running it.

$ chmod u+s"

So, I guess the solution I referenced, above, seems reasonable. But, why did the fstab suddenly lose the ability to mount cifs drives? Or, did I leave something off my fstab line that makes the system think it’s just me, a lowly user, who’s trying to mount the drive.

I rebooted the NAS (just in case it was something on that end) and then did a mount -a

mount -a cifs   
This program is not installed setuid root -  "user" CIFS mounts not supported.

So, it’s definitely not a timing thing with the (wired) network. I guess I’ll try those chmods.

sudo chmod u+s /bin/mount
sudo chmod u+s /bin/umount
sudo chmod u+s /usr/sbin/mount.cifs

The above fixed it. No idea why this just started happening.

On my up-to-data FC36 system, mount and umount have the “s” bit set, but mount.cifs has not. Indeed the error appears when trying to mount as user. There have been security discussions about running mount.cifs with setuid bit, and it even can compiled to forbid running setuid. Setting the “s” bit in mount.cifs indeed works in the current release. I have no idea whether this has been changed at a given release/update. KDE and Gnome have their own ideas of mounting cifs, for example you can mount as user with “gio mount smb://system/share”, and find the mountpoint under /run/user/1000/gvfs/smb-share…

Opened this bug report, since I can’t do the setuid workaround on Silverblue: 2094785 – "user" CIFS mount not supported

This started for me after updating my kernel this morning. I get the same error as was given about, but when I tried the
sudo chmod u+s /bin/mount
sudo chmod u+s /bin/umount
sudo chmod u+s /usr/sbin/mount.cifs fix, I ended up with a new error -

Unable to mount DriveName
Mount.cifs: permission denied

If I boot with the last kernel, things work properly. I have reproduced this several times on VMs. I always get the same result, and always get the second error if I try those three commands

I’m using the Cinnamon spin of Fedora 36. My fstab entries have worked on any distro, but in case that could be part of the issue, one of them looks like this…

//10.0.0.253/Misc /home/david/Media/Misc cifs uid=1000,gid=1000,credentials=/home/david/.creds 0 0

Thanks

Same problem here.

Is there any workaround?

Yes. Stop using fstab :sweat_smile:
I mean, there are other (modern) ways to mount a (remote) filesystem, more resilient and powerful than fstab: Systemd mount units or autofs or gio mount.

Instead of fstab

Systemd example

Supposing you want to mount the CIFS resource in /home/user/mnt/samba

mkdir /home/user/mnt/samba

You have to create these two files

/etc/systemd/system/home-user-mnt-samba.mount
/etc/systemd/system/home-user-mnt-samba.automount

Please note: the unit name should match the mount point. So, if the mount point is /mnt/foo the unit name should be mnt-foo.mount and mnt-foo.automount

Systemd unit files

This could be the content of the unit files.

/etc/systemd/system/home-user-mnt-samba.mount

[Unit]
Description=mount my share

[Mount]
What=//server.address.bar/share
Where=/home/user/mnt/samba
Type=cifs
Options=rw,file_mode=0700,dir_mode=0700,uid=1000,user=username,password=sharepwd
DirectoryMode=0700

[Install]
WantedBy=multi-user.target

/etc/systemd/system/home-user-mnt-samba.automount

[Unit]
Description=automount my share

[Automount]
Where=/home/user/mnt/samba
TimeoutIdleSec=60

[Install]
WantedBy=multi-user.target

Enable and start the service

sudo systemctl daemon-reload
sudo systemctl enable home-user-mnt-samba.automount --now

Troubleshooting

systemctl status home-user-mnt-samba.automount
systemctl status home-user-mnt-samba.mount
journalctl -xe

Notes

In this way the resource is actually (auto)mounted when accessed.
TimeoutIdleSec=60 will umount the resource after a period of inactivity.

2 Likes

OT - Mitico Alciregi, grazie. (Sono doclight).

Thanks, I will try your workaround during the weekend (I hope).

Same problem I am having. IS there a fix to te kernel planned to address this issue?

I tried a couple options you mentioned. Maybe I wasn’t patient, or just too newb, but I started looking at fstab alternatives. I got a script working with @reboot crontab, and so far it’s passing testing on my VM’s. I’m glad you suggested trying different options.

Thanks

Here it worked the first time. Then, after reboot, nothing to do.

What happens?