Как исправить 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_LIBSи LIBPAM_CFLAGS. Установите их вручную в место, где находятся общие библиотеки (файлы .so) и заголовки (файлы .h) для скомпилированного libpam.

Я бы посоветовал вам настроить "локальный префикс", где 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 на устройстве, вы, вероятно, не сможете манипулировать tunустройствами tap(если только системный администратор не предоставил вам соответствующих привилегий), поэтому вы, вероятно, в любом случае не сможете создать полезный VPN-туннель без прав root, даже если вы скомпилируете OpenVPN :)

решение2

yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel -y

Это разрешит все зависимости.

решение3

Я пытался установить OpenVPN 2.3.0 через ./configureкоманду от имени root и получал ту же ошибку о том, что libpam требуется, но отсутствует. Я установил пакетlibpam0g-devи снова успешно запустил ./configure.

Я знаю, что вы сказали, что у вас нет прав root, но если вы сможете установить этот пакет, он, вероятно, позволит вам завершить то, что ./configureвы пытаетесь сделать.

Связанный контент