我在 Debian 5.0 x86 服务器上通过 sshfs 安排了一个备份脚本。但是,当我尝试挂载远程目录时,我收到:
failed to open /dev/fuse: Permission denied
ls -l /dev/fuse
返回:
crwxrwxr-x 1 root fuse 10, 229 2010-11-12 09:08 /dev/fuse
id backup
返回:
uid=501(backup) gid=501(backup) groups=501(backup),46(plugdev),108(fuse)
我唯一可以挂载目录的方法是运行chmod a+w /dev/fuse
,但这会在一天中的某个时间点重置。不过这是一个临时解决方案,我宁愿弄清楚为什么组权限不起作用。
答案1
您的备份脚本是如何运行的?它是否可能从未继承组成员身份的打开的 shell 中运行(因为它在您将用户添加到组之前就已运行)?
答案2
你确定这些是 Puppet 作业在登录时看到的组,而不是你在登录时看到的组吗su - backup
?尝试运行一个显示命令输出的作业groups
和/或重新启动 Puppet 代理(如果还没有)。
答案3
使用 udev 规则创建模式为 777 的特殊文件。创建一个/etc/udev/rules.d/99-fuse.rules
包含以下内容的新文件。
KERNEL==fuse, MODE=0777
至于组成员问题,您是否在启动 Puppet 后将用户添加到组中?如果是这样,重新启动 Puppet 可能会解决问题。