为什么即使以 root 身份运行也找不到 read /run/user/1000/gvfs ?

为什么即使以 root 身份运行也找不到 read /run/user/1000/gvfs ?

有人可以告诉我我做错了什么,这是什么,或者如何解决它?我正在运行 Fedora 18 并显示错误

[root@servername /]# find . -name ngirc
find: `./run/user/1000/gvfs': Permission denied
[root@servername /]# 
[root@thinktank /]# pwd
/
[root@thinktank /]# ls -ltr ./run/user/1000
ls: cannot access ./run/user/1000/gvfs: Permission denied
total 0
d?????????? ? ?    ?      ?            ? gvfs
lrwxrwxrwx. 1 root root  17 May 28 12:30 X11-display -> /tmp/.X11-unix/X0
drwx------. 2 kal  kal  120 May 28 12:30 keyring-QjDw4b
drwx------. 2 kal  kal   40 May 28 12:30 gvfs-burn
drwx------. 2 kal  kal   60 May 28 12:30 krb5cc_5f0bcaf94f916d6b61696e2251a4dbb3
drwx------. 2 kal  kal   60 May 28 18:25 dconf

答案1

你没有做错任何事,也没有什么可以纠正的。/run/user/$uid/gvfs或者~$user/.gvfs是挂载点保险丝接口到重力加速度传感器。 GVFS 是 Gnome 的虚拟文件系统实现,它允许 Gnome 应用程序访问 FTP 或 Samba 服务器等资源或本地目录等 zip 文件的内容。 FUSE 是一种将文件系统驱动程序实现为用户代码(而不是内核代码)的方法。 GVFS-FUSE 网关使所有应用程序都可以访问 GVFS 文件系统驱动程序,而不仅仅是使用 Gnome 库的应用程序。

使用 FUSE 文件系统管理信任边界很困难,因为文件系统驱动程序作为非特权用户运行,而不是传统文件系统的内核代码。为了避免复杂化,默认情况下,FUSE 文件系统只能由运行驱动程序进程的用户访问。即使是 root 也无法绕过这个限制。

如果您仅在本地文件系统上搜索文件,请传递-xdevfind.如果要遍历多个本地文件系统,请将它们全部枚举出来。

find  / /home -xdev -name ngirc

如果该文件从昨天起就存在,您可以尝试locate ngirc相反(locate搜索通常每晚更新的文件名数据库)。

如果您确实想要遍历 GVFS 挂载点,则必须以适当的用户身份执行此操作。

find / -name ngirc -path '/run/user/*/gvfs' -prune -o -path '/home/*/.gvfs' -prune -o -name ngirc -print
for d in /run/user/*; do su "${d##*/}" -c "find $d -name ngirc -print"; done

答案2

它是保险丝问题。除所有者外,任何用户都无法读取。要解决默认配置问题,请尝试启用 user_allow_other 选项。通过将其添加到 /etc/fuse.conf 来指定此选项。它没有值,只需在空行上指定该选项即可。

答案3

如果您按照以下方式获得 gvfs 的许可和其他详细信息

d?????????? ? ?    ?      ?            ? gvfs

然后使用以下命令卸载 gvfs。按照此流程后,您的问题将得到解决。

umount ~/gvfs(umount /run/user/112/gvfs in my case).

GVFS(GNOME 虚拟文件系统)是 GNOME 桌面的虚拟文件系统,它允许用户通过 SFTP、FTP、WebDAV、SMB 轻松访问远程数据,并通过 udev 集成访问本地数据,因此您在卸载时无需担心。

答案4

这是一个旧线程,但在 gnome bug 报告中,这是一个最近未解决的问题,因此对于花费数小时寻找解决方案来修复 gvfs-fuser 问题的人来说,它可能会有一些用处 - 所有这些似乎都紧密相关。

来自融合的错误消息:

Error copying '/media/root/5FDA03906F33F217/SAVE/rsyncTEST-usb/allusers' to '/run/user/0/gvfs/ftp:host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'

[Errno 95] Operation not supported: '/run/user/0/gvfs/ftp:host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'.

我在尝试通过 ftp 使用 meld/diff/kdiff 时遇到了 gvfs-fuser 问题。看来问题出在 fusionr 和 gvfs 之间。该问题似乎不会在 3.15.1 中出现,但在 3.15.2 中开始报告。(新的 python 版本?)解决方案是一种解决方法,而不是修复 - 文件/目录将复制,但仍显示错误。

克里斯托弗的回答定义问题并提供解决方案。

另一种可能的解决方案是使用 sshfs(请参阅这条评论这个线程)。有关 的更多信息gvfs-commands,请参阅gvfs命令与cat、ls、cp等常用命令有什么区别?

可能相关的错误包括侏儒#317875侏儒#768281

相关内容