4

I have a backup script scheduled on a Debian 5.0 x86 server, via sshfs. However, when I attempt to mount the remote directory, I receive:

failed to open /dev/fuse: Permission denied

ls -l /dev/fuse returns:

crwxrwxr-x 1 root fuse 10, 229 2010-11-12 09:08 /dev/fuse

id backup returns:

uid=501(backup) gid=501(backup) groups=501(backup),46(plugdev),108(fuse)

The only way I can get the directory to mount is if I run chmod a+w /dev/fuse, but this is reset at some point during the day. It's a kludge though, and I'd rather figure out why the group permissions aren't working.

steeef
  • 61
  • 1
  • 4

3 Answers3

2

How is your backup script run? Is it possible that it's run from an open shell which hasn't inherited the group membership (since it was running before you added the user to the group)?

mattdm
  • 6,600
  • 1
  • 26
  • 48
  • It's run as a Puppet scheduled job, similar to a cron job. It's running as the backup user. – steeef Nov 24 '10 at 16:42
1

Are you sure those are the groups the puppet job sees when logging in, as oppossed to only the ones you see when you su - backup? Try running a job that shows you the output of the groups command and/or restarting the puppet agent if you haven't already.

Eduardo Ivanec
  • 14,881
  • 1
  • 37
  • 43
1

Use a udev rule to create the special file with mode 777. Create a new file /etc/udev/rules.d/99-fuse.rules with the following contents.

KERNEL==fuse, MODE=0777

As for the group membership problem, did you add the user to the group after puppet was started? If so, restarting puppet would likely fix the issue.

Nicholas
  • 171
  • 4