- 你机器 2026-07-06 装机那天的
base system提交里,所有普通文件就已经是-00777—— 说明安装器/镜像本身就是这套逻辑产出的; - 缺陷所在的
deepin-immutable-ctl现在装的是 1.0.39,就是仓库里的最新版(没有可升级的修复版); - 昨天我用它跑了一次
admin deploy:可写层里明明是 4755 / 640,写进提交仍然是 0777 —— 直接复现。
所以同版本重装 = 把同一个坏底子再装一遍,开机 5 分钟后 cleanup 一跑,权限又回 0777。除非 Deepin 发布修复版。
② 重装成"非不可变"的 Deepin,或换普通发行版(Ubuntu / Debian / Fedora)→ 会解决
这个问题的根只有两条:不可变系统写提交时丢权限 + 系统目录被叠成 overlay。普通安装没有这两件事,chmod/setuid 天生正常,也就没有这套"权限被周期性打回"的怪象。


中文 


1、向 Deepin 报这个缺陷(复现极简:把任意 setuid 文件
chmod 4755,跑一次admin deploy,新提交里仍是 0777)。2、deepin 25 的实现缺陷
deepin-immutable-ctl(/usr/sbin/deepin-immutable-ctl)在Merge overlay layer → Submitting changes to ostree阶段,普通文件一律写成 0777(目录保住了 0755),setuid/setgid、640 这类权限全部丢掉。base system提交同样全是-00777→ 装机镜像也出自同一套写入逻辑,机器从第一天起就没有一个正确的系统层。admin deploy(包括开机 5 分钟后的deepin-immutable-cleanup.timer)都会把系统层重新写成 0777;只有下一次启动按新部署铺文件时,setuid 才消失。为什么以前能用:
apt install/upgrade时 dpkg 把正确权限写进可写层(overlay 上层),等于临时把洞堵住了;一旦可写层被重建/清理(这次是 10-04~10-06 连续升级+8 次重启,再加 10-06 03:33 那次整持久分区重写),洞就露出来了。所以它的表现是"升级完正常、某次重启后突然全坏",而不是天天坏。3\过去靠"可写层"挡着
/usr、/etc、/opt是 overlay:lowerdir = 旧修改层 : data层 : 部署,upperdir = 当前修改层。文件只要不在修改层里,露出来的就是提交里的 0777。关键数字:我今天动手之前,
/usr的修改层只有 13 MB(现在是我修完后的 16 GB)。也就是说 10-05 19:37 那次重建之后,修改层几乎是空的 →/usr全体回落到 0777。而以前为什么正常?你每次
apt install/upgrade都会把包里的文件按正确权限写进修改层(dpkg 解包写入,含 setuid),等于顺手把 sudo、passwd 这些修好了;所以只要你近期升级过软件,系统就"看起来正常"。你的 bash 历史里apt upgrade / dist-upgrade出现得非常频繁——这正好解释了"平时没事"。