ls:无法访问 .gvfs:权限被拒绝

ls:无法访问 .gvfs:权限被拒绝

每当我以 root 身份在终端中运行应用程序(例如sudo gedit /etc/default/varnish)时,随后当我打开另一个终端时,我会在终端顶行收到“ls:无法访问 .gvfs:权限被拒绝”错误。

我在网上找到了一个解决方案

  umount /path/to/.gvfs
  rm -rf .gvfs

但它只能暂时解决问题。

看来我有两个已安装的实例財產協會在我的系统中

  $ sudo mount |grep gvfs
    gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=33)
    gvfsd-fuse on /home/****/.gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

我不知道这是否与几个月前我必须更改主文件夹中的权限有关,例如

  sudo chown -R $USER:www-data

你能帮我修复它吗?

编辑:卸载后/run/user/1000/gvfs我没有收到该错误。

答案1

运行图形应用程序sudo有时会导致这样的问题。

解释

sudo使用超级用户权限运行程序(例如以 root 身份运行),但程序仍将当前主目录视为你的主目录。

因此,当软件写入配置文件时,它最终会在你的主目录中创建由用户。最终您将无法编辑或删除文件,也无法修改正在运行的软件,从而导致更多问题。

最好的解决方案是什么?

还有另一种选择:gksudo

sudo 的这个变体将设置环境变量(例如主目录),使得以 root 身份运行图形应用程序更加安全,并且不会混淆程序在主目录中创建 root 拥有的文件。

为什么这会影响图形应用程序?

这不仅会影响图形应用程序,也不会影响所有图形应用程序。它会影响将配置存储在当前用户主目录中的应用程序。这在图形应用程序中更常见。

有时应用程序将能够检测它们是否使用 sudo 运行并相应地调整其行为,但这对于通常不期望使用 sudo 运行的图形应用程序来说并不常见。

我该如何解决这个问题?

您需要在您的主目录中找到 root 拥有的文件和目录并删除它们。我认为删除它们比更改它们的所有权更好,因为它们不是为您的用户准备的,而是为 root 用户准备的,因此如果您只是更改所有权,可能会产生意想不到的效果。当然,您可以备份它们,以防您以后决定其中有您想要的东西。

要在您的主目录中查找 root 拥有的文件:

find ~ -user root

如果某些应用程序(以您的用户身份运行)仍存在问题,请尝试重新启动以清除/tmp所有仍在运行的应用程序。有时,某些应用程序可能已损坏其现有配置文件,需要您删除全部您的主目录中的配置,但希望对许多人来说情况并非如此。

答案2

只需授予用户权限.gvfs/就可以解决问题。

sudo chown -R $USER:$USER ~/.gvfs/

相关内容