¿Cómo corregir Openvpn con derechos elevados siendo un usuario normal?

¿Cómo corregir Openvpn con derechos elevados siendo un usuario normal?
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 

error: se requiere libpam pero falta

Simplemente no tengo privilegios para instalar el paquete llamado libpam, entonces, ¿puedo compilar libpam e instalarlo en el directorio de inicio y luego compilar openvpn basado en él?

Respuesta1

Sí, por supuesto que puedes compilar cosas como un usuario normal y apuntarle el script de configuración. Ejecute configure --helpy probablemente verá dónde habla sobre la configuración de variables de entorno como LIBPAM_LIBSy LIBPAM_CFLAGS. Configúrelos manualmente en la ubicación donde se encuentran las bibliotecas compartidas (archivos .so) y los encabezados (archivos .h) para un libpam compilado.

Le aconsejaría que configure un "prefijo local" donde se puedan agregar openvpn y todas sus dependencias. Piense en este prefijo como su propio /usrdirectorio.

Según su configuración, parece que ya está configurando --prefix en /home/mirror/build/ins/ins_vpn, por lo que /home/mirror/build/ins/ins_vpn/include sería el valor a establecer para la variable de entorno LIBPAM_CFLAGSy /home/mirror/build/ins/ins_vpn/lib sería el valor a establecer para la variable de entorno LIBPAM_LIBS. Eso sí, los nombres de las variables de entorno pueden variar dependiendo de lo que configure --helpdiga. Así que ejecútalo y léelo.

También puede configurar PKG_CONFIG_PATHla variable de entorno y el paso /home/mirror/build/ins/ins_vpn/lib/pkg-configlibpammake installdeberíainserte libpam.pc en ese directorio durante la instalación (si lo configura con --prefix=/home/mirror/build/ins/ins_vpn). Al configurar PKG_CONFIG_PATH, le está indicando a la pkg-configutilidad que busque en ese directorio .pcarchivos que contengan datos sobre la compilación y los indicadores de vinculación de los programas. Muchas bibliotecas estándar usan pkg-config y autoconfig, por lo que debería poder repetir estos pasos para cualquier otro paquete.

Obtener una versión adecuada de las fuentes de libpam probablemente sea solo una cuestión de descargar el rpm de la fuente y descomprimir las fuentes, o simplemente averiguar qué versión de libpam utiliza su distribución y obtener esa versión (o una versión posterior probablemente también funcionará).

Tenga en cuenta que, dado que no tiene acceso de root en la caja, probablemente no pueda manipular tundispositivos tap(a menos que el administrador del sistema le haya otorgado privilegios), por lo que probablemente no podrá crear un túnel VPN útil sin root de todos modos. incluso si compilas openvpn :)

Respuesta2

yum instalar gcc hacer rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel -y

Esto resolverá todas las dependencias.

Respuesta3

Estaba intentando instalar OpenVPN 2.3.0 mediante un ./configurecomando como root y recibía el mismo error sobre el libpam requerido pero faltante. Instalé el paquetelibpam0g-devy ejecuté ./configurenuevamente con éxito.

Sé que dijiste que no tienes root, pero si puedes instalar ese paquete, probablemente te permitirá terminar lo que ./configureestás intentando hacer.

información relacionada