非 root 用户不显示文件夹图标

非 root 用户不显示文件夹图标

我最近问过关于如何在 Gnome 的 Nautilus 文件浏览器中更改默认文件夹图标的问题,一切都很好并且运行良好。

从那时起,我已经创建了新的文件夹 svg 并替换了我以前使用的文件夹,使用上面提到的帖子中描述的相同方法。

由于某种原因,当以普通用户身份使用 Nautilus 时,这些文件夹图标无法正确显示。这是我看到的全部内容,请注意,无标题文件夹没有图标:

无文件夹图标 - 用户

另一方面,如果我以 root 身份运行 Nautilus sudo nautilus,则会按预期显示图标:

文件夹图标 - 根目录

这让我立即想到这个问题一定是基于权限的,但是 folder.svg 文件具有与下载/文档 svg 文件相同的权限,所以我无法弄清楚问题是什么。

我已经尝试了所提出的建议这里,但这并没有什么区别。

答案1

您对文件权限的想法对我来说感觉正确,但它不是关于文件夹的文件权限,而是关于您用于文件夹的图像的权限。

如果您拖放文件,原始文件的权限将保持不变,因此如果仅允许文件的用户/所有者读/写,则您的 VM 上的用户将没有权限,因为它是不同的用户。

解决此问题

  • 在虚拟机内运行sudo chown VM-USERNAME YOURFOLDERIMAGE.svg,这会让你成为文件的所有者

  • 或者在通过拖放之前授予文件足够的权限chmod a+r YOURFOLDERIMAGE.svg,这将给予A全部权限r伊德。

Linux 文件权限如果您使用无法存储它们的文件系统,则会丢失 - 这是 (v)fat(32) 和 ntfs 的情况,它们最常用于 USB 驱动器或外部硬盘驱动器 - 因此您的“解决方案”有效。

要了解有关 Linux 文件权限的更多信息,请查看上一段中的链接并查看man chmod

答案2

所以我已经弄清楚这件事了。

我无法解释为什么图标可以显示给根用户,而普通用户却不显示,但我已经弄清楚了导致图标无法正确显示的原因。

我的 Ubuntu 在虚拟机中运行。SVG 是在主机上创建的,然后使用复制/粘贴复制到虚拟机中,这似乎是导致问题的原因。不知道为什么,但我接受了它。

当我将 svg 上传到 Google Drive 或类似位置,或上传到 USB 记忆棒并将它们下载到虚拟机中时,它们可以正常工作。

相关内容