从 SSH 输出编译器选项

从 SSH 输出编译器选项

如何列出 ssh/sshd 编译时使用的配置选项?

我正在尝试解决 SELinux 配置问题,并希望确保 SSH 是使用--with-selinux.

答案1

我不认为有办法列出编译选项,但是像 SELinux 支持这样的东西应该从可执行文件所链接的库中显而易见:

$ ldd /usr/bin/ssh /usr/sbin/sshd | egrep '^/|selinux'
/usr/bin/ssh:
/usr/sbin/sshd:
        libselinux.so.1 => /lib/libselinux.so.1 (0x00007fbbfed5f000)

看起来sshd有 SELinux 支持,但ssh在我的系统上没有(为什么?)。

您可以检查的另一件事(例如,如果您有静态二进制文件)是是否有二进制文件引用某些 SELinux 函数。

strings /usr/sbin/sshd |grep -i selinux

答案2

我认为您可能需要查看您的发行版的打包系统并找到它编译时使用的选项。有些程序可以输出它们的编译标志,但我不知道 sshd 有这样的选项。

答案3

如果您正在安装默认分发包,并且

  • 该发行版是基于 Debian 的,请查看debian/rules包源中的文件(基本上是 Makefile)以获取配置选项。

  • 该发行版是基于 rpm 的,请查看编译选项,可能在源 rpm 的规范文件中。

对于像 Gentoo 这样没有默认编译选项的自定义发行版,这会更加困难,我会与构建该包的人交谈,并ldd按照人们的建议进行查看。

如果您指定您的发行版(正如您最初应该做的那样),人们可能会为您提供更具体的指导。

相关内容