如何欺骗应用程序所见的 Ubuntu 版本?

如何欺骗应用程序所见的 Ubuntu 版本?

我正在尝试安装英特尔灯塔山在 Ubuntu 13.10 (Saucy Salamander) 64 位上。

但安装程序抱怨它不是受支持的操作系统。安装程序仅支持 12.04、12.10 和 13.04。我查看了脚本,但最终它运行了另一个安装程序(二进制可执行文件),并且它似乎检查了 Ubuntu 版本本身。我刚刚尝试修改/etc/issue/etc/issue.net,但正如预期的那样,我没有成功。

我不确定安装程序使用什么机制来检查操作系统版本。也许吧lsb_release

有没有什么通用的方法可以欺骗操作系统版本?

其实我对安装Beacon Mountain没多大兴趣,但是我想知道欺骗OS版本的方法。

答案1

关键是/etc/lsb-release

我只是修改/etc/lsb-release并使其正常工作。我以前不知道该文件,但是/etc/issue。但是,根据我的理解,/etc/issue文件用于 shell 问候消息,/etc/issue.net文件用于远程 shell 问候。(FIXME)

我弄清楚了strace lsb_release -a并发现它读取了/etc/lsb-release文件。

答案2

我只需要这样做就可以让 saltstack 在 Ubuntu 20.04 的开发版本上运行。

该脚本/usr/lib/lsb_release是一个导入的python脚本/usr/lib/python3/dist-packages/lsb_release.py。通过检查脚本,我可以看到它现在读取的/usr/lib/os-release是而不是,/etc/lsb_release并且可以通过设置环境变量来覆盖它LSB_OS_RELEASE

您可以通过将此变量设置为指向 os-release 文件的修改版本来欺骗正在运行的程序。这将允许您根据每个程序而不是整个系统更改检测到的 Ubuntu 版本。

 $ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu Focal Fossa (development branch)
Release:    20.04
Codename:   focal

 $ cat /usr/local/lib/os-release
NAME="Ubuntu"
VERSION="18.04 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

 $ LSB_OS_RELEASE=/usr/local/lib/os-release lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04 LTS
Release:    18.04
Codename:   bionic

相关内容