Reputation: 31
I am running a VM on my machine and have mounted a host folder inside VM using sshfs (auto-mounted via fstab).
abc@xyz:/home/machine/test on /home/vm/test type fuse.sshfs (rw,relatime,user_id=0,group_id=0,allow_other)
That folder has an executable which I want to run inside the VM. But I also need some capabilities before running that executable. So my script looks like:
#!/bin/bash
# Some preprocessing.
sudo setcap CAP_DAC_OVERRIDE+ep /home/vm/test/my_exec
/home/vm/test/my_exec
But I am getting below error :
Failed to set capabilities on file `/home/vm/test/my_exec' (Operation not supported)
The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
But if I copy executable inside the VM (say in /tmp/), then it works perfectly fine. Is this a known limitation of sshfs or am I missing something here ?
Upvotes: 1
Views: 423
Reputation:
File capabilities are implemented on Linux with extended attributes (specifically the security.capability
attribute), and not all filesystems implement extended attributes.
sshfs
in particular does not.
Upvotes: 1
Reputation:
sshfs can only perform operations which the remote user is authorized to perform. You're logged into the remote host as abc
, so you can only perform actions over sshfs which abc
can perform -- which doesn't include setcap
, since that operation can only be performed by root. Using sudo
on your local machine doesn't change that.
Upvotes: 0