目录,用户可以阅读,但根不能?

我的homedir下有一个名为“.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 

然而,作为根,我不能“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或任何奇怪的东西。 我看到这个目录被标记为非世界可读的(并且是非世界可能的),但是我认为当你是root的时候,这些目录都不适用。 例如,我可以在/ tmp中创build一个mode-000目录,并将其交给非root用户,root可以毫无困难地读取,写入。

任何想法发生了什么?

来自: http : //bugzilla.gnome.org/show_bug.cgi?id=534284

这一切都是不幸的,但是它是由内核级人员(除了安装fs的用户之外的其他用户无法访问它,包括root)所采取的决定,我们无能为力。

另见: https : //bugs.launchpad.net/gvfs/+bug/225361

解决scheme似乎是更新您的/etc/fuse.conf并启用user_allow_other选项。 您可能还需要获得gvfs通过allow_root或allow_other,但我不知道如何做到这一点。

当然,简单地放弃像gvfs这样的所有GUI工具,从命令行挂载你的文件系统可能会容易得多,因为你可以完全控制如何挂载文件系统。

.gvfs目录是Gnome VFS用户空间文件系统,为虚拟文件系统提供直接文件系统path(例如,远程samba挂载,webdav挂载),因此Gnome可以将path传递给在远程文件上运行时不支持VFS的程序。

由于这是一个FUSE挂载和应用程序,它可以拒绝root权限 – 在这种情况下执行访问检查的代理是FUSE应用程序,而不是内核。

默认情况下, gvfs守护进程只允许所有者遍历目录。

这可能是几件事情,按照可能性sorting

  • 检查/ var / log / messages(或/ var / log / syslog)可能的文件系统损坏
  • 你在使用SELinux吗?
  • 谷歌build议lsattr〜raldi / .gvfs可能指示应用于该文件的特殊function。