sed:无法打开临时文件 /etc/update-manager/sed2l1b5x:权限被拒绝

Sin*_*olo 6 permissions sed windows-subsystem-for-linux 22.04

当我启动 Ubuntu 终端时,出现以下错误:sed: couldn't open temporary file /etc/update-manager/sed2l1b5x: Permission deniedsed2l1b5x每次启动终端时该文件都是随机的。

我找到的所有答案似乎与我的问题不符。我该如何解决这个问题?

小智 2

我最终通过将终端中使用的配置文件的命令行参数更改为来摆脱该消息

C:\WINDOWS\system32\wsl.exe -d <profile>
Run Code Online (Sandbox Code Playgroud)

例如

C:\WINDOWS\system32\wsl.exe -d Ubuntu
Run Code Online (Sandbox Code Playgroud)

调查

根据@Eduardos的回答,我试图弄清楚在启动过程中何时通过将echo命令插入到由bash调用的文件中来触发该文件。sed 访问错误甚至在/etc/profile执行之前就出现了。

该文件/etc/wsl.conf不包含任何相关更改。

将终端中的 wsl 配置文件与默认配置文件进行比较后,我发现我的配置文件用作Ubuntu.exe命令行参数,而默认配置文件具有C:\WINDOWS\system32\wsl.exe -d Ubuntu


小智 1

在 rg 根系统之后我找到了这个文件:

/var/lib/dpgk/info/ubuntu-release-upgrader-core.preinst
Run Code Online (Sandbox Code Playgroud)

其中有以下行:

if dpkg --compare-versions "$2" lt 1:0.189 && [ -f /etc/update-manager/release-upgrades ]; then
            sed -i -s 's/^prompt=/Prompt=/' /etc/update-manager/release-upgrades
fi
Run Code Online (Sandbox Code Playgroud)

运行 sed 部分我可以确认每次打开新终端时都会运行该文件,因为我今天也开始遇到此问题。但仍然不确定是什么引发了问题以及如何解决它。