![作为普通用户,如何纠正提升权限的Openvpn?](https://linux22.com/image/1330955/%E4%BD%9C%E4%B8%BA%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BA%A0%E6%AD%A3%E6%8F%90%E5%8D%87%E6%9D%83%E9%99%90%E7%9A%84Openvpn%EF%BC%9F.png)
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_LIBS
和LIBPAM_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-config
libpammake install
步骤应该安装时将 libpam.pc 推送到该目录中(如果您使用 对其进行配置--prefix=/home/mirror/build/ins/ins_vpn
)。通过设置 PKG_CONFIG_PATH,您可以指示实用pkg-config
程序在该目录中查找.pc
文件,其中包含有关程序编译和链接标志的数据。许多标准库都使用 pkg-config 和 autoconfig,因此您应该能够对任何其他软件包重复这些步骤。
获取适当版本的 libpam 源可能只需下载源 rpm 并解压源,或者只需弄清楚您的发行版上游使用哪个版本的 libpam 并获取该版本(或更高版本也可能有效)。
请注意,由于您没有该盒子的 root 访问权限,您可能无法操作tun
或tap
设备(除非系统管理员授予您权限),所以您可能无法在没有 root 的情况下创建有用的 VPN 隧道,即使您编译了 openvpn :)
答案2
yum 安装 gcc 制作 rpm 构建 autoconf.noarch zlib-devel pam-devel openssl-devel -y
这将解决所有依赖关系
答案3
我尝试通过./configure
root 命令安装 OpenVPN 2.3.0,但出现了同样的错误,提示缺少 libpam。我安装了该软件包libpam0g-dev并再次成功运行./configure
。
我知道您说您没有 root 权限,但如果您可以安装该包,它可能可以让您完成./configure
您正在尝试做的事情。