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

Sin*_*olo 44 permissions motd windows-subsystem-for-linux 22.04

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

移动它后,默认用户是 root,所以我在 中添加了以下几行/etc/wsl.conf

[user]
default=numa
Run Code Online (Sandbox Code Playgroud)

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

[/etc/update-motd.d/50-landscape-sysinfo: 17: cannot create /var/lib/landscape/landscape-sysinfo.cache: Permission denied]
Run Code Online (Sandbox Code Playgroud)

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

Not*_*1ds 67

简短回答:

两种选择:

  • 受到推崇的:

    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
    
    Run Code Online (Sandbox Code Playgroud)

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

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

更多详情

别担心 - 这与您移动发行版无关。WSL 上的所有22.04 安装都存在该问题。有趣的是,我从来没有注意到这一点,直到你指出——这表明了我对 MOTD 的关注程度:-/。

这是在Github 问题的底部报告的,但它与特定问题无关 (该问题之前已修复,并将继续修复)。

这里的问题是 WSL 的 Ubuntu 发行版基于 Ubuntu Server,其中包括对Landscape的支持,这是一项管理服务器的功能。

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

使用上面的命令删除这个包是安全的,并且错误将不再出现。