如何修复 /usr/share/mime 中文件的损坏权限?

如何修复 /usr/share/mime 中文件的损坏权限?

有时在 Void Linux 上,GDK 会由于/usr/share/mime.

任何 GTK 应用程序都会出现如下错误:

(evince:14593): Gtk-WARNING **: 11:32:26.476: Could not load a pixbuf from icon theme.

This may indicate that pixbuf loaders or the mime database could not be found. 

错误的权限通常如下所示(请注意所有文件的模式均为 640):

-rw-r----- 1 root root  10773 Mar  1 13:37 aliases
drwxr-xr-x 1 root root  17650 Mar  1 13:37 application/
drwxr-xr-x 1 root root   1264 Mar  1 13:37 audio/
drwxr-xr-x 1 root root     72 Mar  1 13:37 font/
-rw-r----- 1 root root  21733 Mar  1 13:37 generic-icons
-rw-r----- 1 root root  31371 Mar  1 13:37 globs
-rw-r----- 1 root root  34843 Mar  1 13:37 globs2
-rw-r----- 1 root root     20 Mar  1 13:37 icons
drwxr-xr-x 1 root root   2474 Mar  1 13:37 image/
drwxr-xr-x 1 root root   5868 Mar  1 13:37 inode/
-rw-r----- 1 root root  28142 Mar  1 13:37 magic
drwxr-xr-x 1 root root    216 Mar  1 13:37 message/
-rw-r----- 1 root root 147456 Mar  1 13:37 mime.cache
drwxr-xr-x 1 root root     46 Mar  1 13:37 model/
drwxr-xr-x 1 root root    224 Mar  1 13:37 multipart/
drwxr-xr-x 1 root root    136 Mar  1 13:37 packages/
-rw-r----- 1 root root  17811 Mar  1 13:37 subclasses
drwxr-xr-x 1 root root   3220 Mar  1 13:37 text/
-rw-r----- 1 root root    964 Mar  1 13:37 treemagic
-rw-r----- 1 root root  21842 Mar  1 13:37 types
-rw-r----- 1 root root      5 Mar  1 13:37 version
drwxr-xr-x 1 root root    688 Mar  1 13:37 video/
drwxr-xr-x 1 root root    522 Mar  1 13:37 x-content/
drwxr-xr-x 1 root root     28 Mar  1 13:37 x-epoc/
-rw-r----- 1 root root   1775 Mar  1 13:37 XMLnamespaces

要解决此问题,必须修复权限,然后必须重新生成 mime 数据库和 gdk pixbuf 缓存。

修复权限使文件变为 644 的最佳方法是什么?

答案1

/usr/share/mime要更改权限 640 到 644 及其以下的所有文件(不包括目录),您可以运行

find /usr/share/mime -type f -perm 640 -exec chmod 644 {} \;
  • find /usr/share/mime查找文件在/usr/share/mime
  • -type f限制为常规文件(非目录)
  • -perm 640并将查找限制为权限为 640 的文件
  • -exec chmod 644 {} \;chmod 644对找到的文件执行

答案2

解决此特定权限问题的另一种方法是使用正确的 umask 重新生成 mime 数据库:

$ sudo sh
# umask 022
# update-mime-database /usr/share/mime
# exit

相关内容