No se pudo realizar el su después de crear una cárcel chroot

No se pudo realizar el su después de crear una cárcel chroot

En un host CentOS de 64 bits estoy usando un scriptmake_chroot_jail.shponer a un usuario en una cárcel, sin permitirle ver nada excepto que esté en casa en /home/jail/home/user1.

Lo hice escribiendo esto:

sudo ./make_chroot_jail.sh user1

después, cuando intenté conectarme con el usuario1 primero, recibí un error como:

/bin/su: user guest does not exist

He solucionado este problema copiando algunas bibliotecas perdidas:

sudo cp /lib64/libnss_compat.so.2 /lib64/libnss_files.so.2 /lib64/libnss_dns.so.2 /lib64/libxcrypt.so.2 /home/jail/lib64/
sudo cp -r /lib64/security/ /home/jail/lib64/

Pero ahora, cuando intento conectarme con el usuario1 escribiendo su user1y luego escribiendo su contraseña, aparece este error:

could not open session

Entonces la pregunta es ¿cómo conectarse al usuario1 en esta situación?

PD: Aquí están los permisos de algunos archivos, esto podría ser útil para brindar una solución:

-rwsr-xr-x 1 root root /home/jail/bin/su
drwxr-xr-x 4 root root /home/jail/etc
-rw-r--r-- 1 root root /home/jail/etc/pam.d/su
-rw-r--r-- 1 root root /home/jail/etc/passwd
-rw------- 1 root root /home/jail/etc/shadow

ACTUALIZACIÓN1

Después de algunas modificaciones logré conectarme con el usuario1, ¡pero la sesión se cierra inmediatamente! Supongo que se trata de un problema de PAM, sin embargo, no encuentro una manera de solucionarlo.

Aquí la entrada del registro para cerrar la acción de /val/log/secure:

Oct  6 15:19:42 localhost su: pam_unix(su:session): session closed for user user1

¿Qué hace que la sesión se cierre inmediatamente después del inicio?

Respuesta1

Para solucionar el could not open sessionproblema, sin abandonar make_chroot_jail.sh por completo, también es necesario copiar las /usr/lib/libcrack*bibliotecas. Edite el script, donde tiene:

# If you are using a 64 bit system and have strange problems with login comment
# the following lines in, perhaps it will work (motto: if you can't find the
# needed library just copy all of them)
#
# cp /lib/*.* ${JAILPATH}/lib/
# cp /lib/lib64/*.* ${JAILPATH}/lib/lib64/

Cambiar a:

cp /lib/*.* ${JAILPATH}/lib/
cp /lib64/*.* ${JAILPATH}/lib64/
cp -rp /lib64/security ${JAILPATH}/lib64/
cp /usr/lib64/libcrack* ${JAILPATH}/usr/lib64/

Solo un breve complemento, lo anterior solucionó este problema con SuSE de 64 bits - SLES 11 sp2. También le cambié el nombre $JAILPATH/liba $JAILPATH/lib64. Y para ese sistema operativo, tuve que agregar un archivo /etc/profile vacío en la cárcel (puedes usarlo para insertar un mensaje de PS1).

Respuesta2

He encontrado una solución.

En primer lugar, debes olvidarte de make_chroot_jail.sh y usarkit de cárcel.

He tenido algunos problemas al usarlo, pero al final todo funciona.

Estos son los pasos sobre cómo utilicé Jailkit y cómo solucioné los problemas que estaban ocurriendo:

R. Haga ./configure; make; make installlo que se describe en INSTALL.txt.

B. Agregue /usr/sbinal $PATHsi aún no está allí.

C. Haz esto:

jk_init -v -j /home/jail basicshell editors extendedshell netutils ssh sftp scp

Esto puede fallar con un mensaje de error como este:

`ERROR: configfile /usr/jk_init.ini does not exist`

Para solucionar este problema, /usr/sbin/jk_initcambie INIPREFIX='/usr'a INIPREFIX='/etc/jailkit' e intente nuevamente.

D. Haz esto:

jk_jailuser -v -m -j /home/jail customer01

Esto puede fallar con un mensaje de error como este:

invalid shell, /home/jail/usr/sbin/jk_lsh does not exist

Para arreglarlo haz esto:

jk_init -v -j /home/jail jk_lsh

e intenta de nuevo. En su lugar, podrías agregar algo jk_lsha la lista en el paso C.

E. Ahora, al intentar conectarse con el cliente01, es posible que la conexión se cierre inmediatamente después del inicio. Para solucionar este problema, /home/jail/etc/passwdcambie el shell de cliente01 y configúrelo para que funcione de esta manera:

customer01:x:518:601::/home/customer01:/bin/bash

en lugar de esto:

customer01:x:518:601::/home/customer01:/usr/sbin/jk_lsh

información relacionada