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

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

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

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

答案1

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

C:\WINDOWS\system32\wsl.exe -d <profile>

例如

C:\WINDOWS\system32\wsl.exe -d Ubuntu

调查

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

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

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

答案2

在 rg 根系统之后我发现了这个文件:

/var/lib/dpgk/info/ubuntu-release-upgrader-core.preinst

其中有以下一行:

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

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

答案3

除了 J_D 的回答之外,这里还有一张更改命令行参数位置的屏幕截图。

  • 它位于终端设置中(小下方阵列,就在打开新选项卡的旁边)。
  • 在左侧导航面板中选择 Ubuntu 配置文件。
  • 页面上的第二个条目是命令行。粘贴C:\WINDOWS\system32\wsl.exe -d Ubuntu到其中。

终端设置,Ubuntu 配置文件:

终端设置的屏幕截图。Ubuntu 配置文件。

答案4

这出现在我的 ubuntu wsl 上。我无奈的做法是在两个目录中给出 777......

/etc/update-manager/
/var/log/

在此之后,重新启动,烦人的消息就消失了。不确定给这两个目录 777 是否不好...但因为是本地开发 ubuntu...嗯

相关内容