I use sshfs to mount a remote folder from another server to the local server. Mounting the remote folder works without a problem using the following command:
sshfs -o allow_other someServerFromSSHConfig:/home/data/somefolder/ /some/local/folder
The problem is that I cannot change the owner of the files using chown (regardless of root permissions) I always get:
chown: changing ownership of ‘/somefolder/file.img’: Permission denied
The user that accesses the folder is member of the fuse group. Even if I add additional mount options in sshfs to set the owner as userx:groupx
I cannot change permissions using userx
and using chown -R userx:groupx [...]
I expect to be able to set user permissions for files in mounted folders but this is not the case.
Best Answer
As you said in comments, you connect as data@remote_server This means you cannot
chown
at all. The sshfs is just a crude abstraction, you are permitted only to the actions that you could perform insidesftp data@remote_server
All abstraction are leaky, this one too.Only root@remote_server can
chown
on remote_server. It doesn't matter what user you are on local_server.Note that to
sftp root@remote_server
you usually need toPermitRoot yes
orPermitRoot without-password
in remote's/etc/ssh/sshd_config
This is risky.PS. By default, sshd doesn't allow root logins at all, because of
PermitRoot no
option. So normally you cannot sshfs root@remote_host. If you would like to test chown behavior via root, I would recommend to setPermitRoot without-password
. This means that root can login when a public key is added to/root/.ssh/authorized_keys
. With this setting, root cannot login solely by providing a root password, so it's somewhat secure.PS2. If you need a bit more security, you can set up another instance of sshd only for this file share; with
ForceCommand internal-sftp
and withchroot
it would have greatly increased root security, but it would need to use a new TCP port and a new firewall exception.