作为普通用户,如何纠正提升权限的Openvpn?

作为普通用户,如何纠正提升权限的Openvpn?
checking tap-windows.h presence... no
checking for tap-windows.h... no
checking whether TUNSETPERSIST is declared... yes
checking for setcon in -lselinux... yes
checking for pam_start in -lpam... no
checking for OPENSSL_CRYPTO... yes
checking for OPENSSL_SSL... yes
checking for EVP_CIPHER_CTX_set_key_length... yes
checking for ENGINE_load_builtin_engines... yes
checking for ENGINE_register_all_complete... yes
checking for ENGINE_cleanup... yes
checking for ssl_init in -lpolarssl... no
checking for aes_crypt_cbc in -lpolarssl... no
checking for lzo1x_1_15_compress in -llzo2... no
checking for lzo1x_1_15_compress in -llzo... no
checking for PKCS11_HELPER... no
checking git checkout... yes
configure: error: libpam required but missing
[mirror@innov openvpn]$ ./configure --help | grep libpam
  --enable-pam-dlopen     dlopen libpam [default=no]
              C compiler flags for libpam
  LIBPAM_LIBS linker flags for libpam
[mirror@xxx openvpn]$ ./configure --prefix=/home/mirror/build/ins/ins_vpn --disable-lzo 

错误:需要 libpam,但是缺失

我只是没有权限安装名为 libpam 的包,所以我可以构建 libpam 并将其安装在主目录中,然后基于它构建 openvpn 吗?

答案1

是的,当然您可以以普通用户的身份编译内容并将配置脚本指向它。运行configure --help,您可能会看到它谈到设置环境变量的位置,例如LIBPAM_LIBSLIBPAM_CFLAGS。手动将这些设置为编译的 libpam 的共享库(.so 文件)和标头(.h 文件)所在的位置。

我建议您设置一个“本地前缀”,其中可以聚合 openvpn 及其所有依赖项。将此前缀视为您自己的/usr目录。

从您的设置来看,您已经将 --prefix 设置为 /home/mirror/build/ins/ins_vpn,因此 /home/mirror/build/ins/ins_vpn/include 将是要为环境变量设置的值,LIBPAM_CFLAGS而 /home/mirror/build/ins/ins_vpn/lib 将是要为环境变量设置的值LIBPAM_LIBS。当然,环境变量名称可能会有所不同,具体取决于configure --help所说的内容。因此,运行它并读取它。

您还可以将PKG_CONFIG_PATH环境变量设置为/home/mirror/build/ins/ins_vpn/lib/pkg-configlibpammake install步骤应该安装时将 libpam.pc 推送到该目录中(如果您使用 对其进行配置--prefix=/home/mirror/build/ins/ins_vpn)。通过设置 PKG_CONFIG_PATH,您可以指示实用pkg-config程序在该目录中查找.pc文件,其中包含有关程序编译和链接标志的数据。许多标准库都使用 pkg-config 和 autoconfig,因此您应该能够对任何其他软件包重复这些步骤。

获取适当版本的 libpam 源可能只需下载源 rpm 并解压源,或者只需弄清楚您的发行版上游使用哪个版本的 libpam 并获取该版本(或更高版本也可能有效)。

请注意,由于您没有该盒子的 root 访问权限,您可能无法操作tuntap设备(除非系统管理员授予您权限),所以您可能无法在没有 root 的情况下创建有用的 VPN 隧道,即使您编译了 openvpn :)

答案2

yum 安装 gcc 制作 rpm 构建 autoconf.noarch zlib-devel pam-devel openssl-devel -y

这将解决所有依赖关系

答案3

我尝试通过./configureroot 命令安装 OpenVPN 2.3.0,但出现了同样的错误,提示缺少 libpam。我安装了该软件包libpam0g-dev并再次成功运行./configure

我知道您说您没有 root 权限,但如果您可以安装该包,它可能可以让您完成./configure您正在尝试做的事情。

相关内容