在我的主目录下有一个名为“.gvfs”的目录。作为我的普通用户帐户,我可以很好地阅读它:
~ $ ls -lart ~raldi/.gvfs
total 4
dr-x------ 2 raldi raldi 0 2009-05-25 22:17 .
drwxr-xr-x 60 raldi raldi 4096 2009-05-25 23:08 ..
~ $ ls -d ~raldi/.gvfs
dr-x------ 2 raldi raldi 0 2009-05-25 22:17 /home/raldi/.gvfs
但是,作为 root 我不能“ls”甚至“ls -d”它:
# ls ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied
# ls -d ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied
而且,只是为了确保:
# echo $UID $EUID
0 0
这只是 Ubuntu 8.10 的简单家庭安装,没有 NFS 或类似的奇怪东西。我看到该目录被标记为非世界可读(并且非世界-x-able),但我认为当你是 root 时这些都不适用。例如,我可以在 /tmp 中创建一个 mode-000 目录并将其提供给非 root 用户,而 root 可以轻松读取、写入等等。
知道发生了什么吗?
来自:http ://bugzilla.gnome.org/show_bug.cgi?id=534284
另见:https ://bugs.launchpad.net/gvfs/+bug/225361
解决方案似乎是更新您的/etc/fuse.conf并启用user_allow_other选项。您可能还需要让 gvfs 传递 allow_root 或 allow_other,但我不确定如何执行此操作。
当然,简单地放弃所有 GUI 工具(如 gvfs)并从命令行安装文件系统可能会容易得多,您可以完全控制安装方式。
该
.gvfs
目录是 Gnome VFS 用户空间文件系统,它为虚拟文件系统(例如远程 samba 挂载、webdav 挂载)提供直接文件系统路径,因此 Gnome 可以将路径传递给在远程文件上操作时不支持 VFS 的程序。由于它是 FUSE 挂载和应用程序,它可以拒绝对 root 的权限——在这种情况下执行访问检查的代理是 FUSE 应用程序,而不是内核。
默认情况下,
gvfs
守护进程只允许所有者遍历目录。可能是一些事情,按照可能性的顺序