ubuntu24.04升级后Nautilus 的缩略图服务被沙箱 AppArmor 限制

刚刚升级完的Ubuntu24.04系统,发现目录下所有图片,不光是 webp,连 JPG/PNG 图片也全都是紫色占位图标了,还有就是PDF文件都一样,就是无法显示预览图。

核心背景:Ubuntu 24.04 新增的安全机制

Ubuntu 24.04 引入了 kernel.apparmor_restrict_unprivileged_userns 这个内核开关,默认设为 1,也就是强制限制普通用户创建 “非特权用户命名空间”

  • 用户命名空间(User Namespaces) 是 Linux 的一项技术,它允许普通用户创建隔离的 “迷你环境”(沙箱),让程序在里面运行,和系统其他部分隔离开,提升安全性。
  • 但这项技术也被恶意软件利用来提权,所以 Ubuntu 24.04 默认直接给它加上了全局限制,普通用户无法创建这种沙箱。

为什么这个限制会导致 Nautilus 无法生成缩略图?

Nautilus 生成缩略图时,依赖 Bubblewrap(bwrap 工具,它正是用 “用户命名空间” 来创建临时沙箱,在隔离环境中调用 gdk-pixbuf-thumbnailerwebp-pixbuf-loader 等解码器生成缩略图。

kernel.apparmor_restrict_unprivileged_userns=1 时:

  1. bwrap 尝试创建沙箱失败
  2. Nautilus 无法调用任何缩略图生成器
  3. 所有图片(JPG/PNG/WebP)都只能显示紫色占位图标,即使解码器和文件本身都是完好的

而 Ubuntu 22.04 里,这个限制开关不存在,或者默认是关闭的,所以 Nautilus 可以正常使用 bwrap 生成缩略图。

解决方法

方案一、添加命令参数实现全局关闭

先通过命令临时测试一下,是否可行再进一步操作

1.临时解除限制(重启后失效,先测试是否生效)

sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

2. 清除失败的缩略图缓存(关键!强制让 Nautilus 重试生成)

rm -rf ~/.cache/thumbnails/fail/*
rm -rf ~/.cache/thumbnails/normal/* ~/.cache/thumbnails/large/*

3.重启 Nautilus

nautilus -q

4.测试一下缩略图是否恢复正常。如果生效,再设置永久生效:

直接通过写入参数到配置文件中让其全局生效。如果文件不存在可以手动创建

echo 'kernel.apparmor_restrict_unprivileged_userns=0' | sudo tee /etc/sysctl.d/99-allow-unprivileged-userns.conf
sudo sysctl -p /etc/sysctl.d/99-allow-unprivileged-userns.conf

即可生效


为什么 Ubuntu22.04 没问题?

因为:

  • Ubuntu 22.04 没有 unprivileged_userns 这个 AppArmor 配置
  • 22.04 允许程序自由使用 user namespace
  • 所以缩略图正常

Ubuntu 24.04 为了防内核提权漏洞,强行加了这层限制,结果误伤了桌面功能


为什么这个配置会让缩略图变紫色方块?

AppArmor导致无法查看缩略图

Nautilus 生成缩略图的流程:

  1. Nautilus 想生成缩略图
  2. 调用 bwrap 沙箱
  3. bwrap 需要创建 user namespace
  4. 被这个 AppArmor 配置拒绝了
  5. 缩略图生成失败 → 显示紫色图标

这就是你看到的现象。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。
       本系列的一部分

ubuntu桌面

Post 40 of 40

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress