Landscape-sysinfo.cache:在 WSL 中启动 Ubuntu 22.04 时权限被拒绝

Landscape-sysinfo.cache:在 WSL 中启动 Ubuntu 22.04 时权限被拒绝

我使用 WSL 在 Windows 11 上安装了 Ubuntu 22.04。然后我使用 WSL 命令 ( --export/ --import) 将其移动到另一个磁盘上。

移动后,默认用户为 root,因此我添加了以下几行/etc/wsl.conf

[user]
default=numa

现在,在我启动 Ubuntu(我认为是 MOTD)时每天显示一次的消息中,我可以看到此消息:

[/etc/update-motd.d/50-landscape-sysinfo: 17: cannot create /var/lib/landscape/landscape-sysinfo.cache: Permission denied]

虽然看起来没有什么危害,但我想知道如何才能避免这种情况。

答案1

简短回答:

两个选项:

  • 受到推崇的:

    sudo apt remove landscape-common
    sudo apt autoremove # Optionally, but recommended so that you can 
    confirm the problem is gone after restarting
    rm ~/.motd_shown
    

    退出并重新启动 Ubuntu/WSL,错误应该不再出现。

  • 或者,如果您启用 Systemd这个答案,错误也不应该出现。但是,我不建议仅仅为了隐藏此错误消息而启用 Systemd。如果您不需要它用于其他目的,那么这将带来很大的开销。

更多详情

别担心——这和你移动分布无关。问题在于全部22.04 在 WSL 上安装。有趣的是,直到你指出这一点我才注意到它——这表明我对 MOTD 有多关注 :-/。

这是在底部报告的这个 Github 问题,但与 特定问题(之前已修复,并且仍在修复中)。

这里的问题是,WSL 的 Ubuntu 发行版基于 Ubuntu Server,它支持景观,用于管理服务器的功能。

当然,这并不适用于 WSL,而且可能(我在这里猜测,但我会尝试稍后确认)无论如何都需要 Systemd 支持,这WSL 没有。我感觉有一个设置 Landscape 目录的 Systemd 单元没有在 WSL 上运行;因此出现错误。

使用上述命令可以安全地删除此包,并且不会再出现错误。

答案2

已修复:

sudo usermod -a -G landscape $USER

此命令将您的用户添加到landscape组中。

然后注销并重新登录。

答案3

这个答案已经很好地消除了错误信息。

就个人而言,我更喜欢运行以下命令:

sudo apt remove -y landscape-common # Remove the package
sudo apt autoremove -y              # Remove orphaned packages
rm -rf ~/.landscape/                # Clean up, no longer used
mv ~/.motd_shown ~/.hushlogin       # Silence “Message Of The Day”
echo lsb_release -dc >> ~/.bashrc   # Display distro at login

每个 Ubuntu 发行版只能运行一次这些命令。
我选择永久禁用 每日讯息 (MOTD)
相反,我修改~/.bashrc为在每次登录时显示 Linux 发行版的描述 。1


1 当然,最后两个命令与所提问题没有任何关系。
我只是希望用对我更有用的命令替换“MOTD”。
此外,我在用户的主目录中启动 WSL,方法是调用 wsl ~ -d Ubuntu而不是更改 中的目录~/.bashrc。我将其属性此评论 感谢你向我指出这个wsl ~选项。两种选择都可以——这只是个人喜好问题。但是,如果你想使用 ConEmu 上下文菜单, 然后你不得使用任何一种选择。如果你这样做,WSL 将不会在当前目录– 您拨打电话的地方WSL Bash Here(ConEmu - 管理员)

答案4

如果您想继续使用风景,那么您可以更改stamplandscape-sysinfo.cache存储的位置,比如说/tmp

sudo nano /etc/update-motd.d/50-landscape-sysinfo

并从第 4 行开始进行以下更改:

# stamp="/var/lib/landscape/landscape-sysinfo.cache"
stamp="/tmp/landscape-sysinfo.cache"

写出文件并退出。在下次更新对该50-landscape-sysinfo文件进行更改之前,它不会再给您带来任何麻烦。

相关内容