LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
En este artículo te vamos a demostrar como crear una jaula para un usuario, lo vamos a hacer de forma rápida y cómoda, el usuario root, es el único que puede enjaular a los usuarios, de esta forma el sistema estará mucho más seguro.
Tras identificarnos como root
su -
Creamos el usuario
adduser pajaro
passwd ******
El siguiente paso se puede hacer de muchas formas, desde editar el fichero /etc/passwd, hasta crear nuestra propia shell a través de un simple shell script, y vamos a hacer esto último:
Con nuestro editor de textos simple preferido, creamos una shell que se llamo "jaula" en /bin
gvim /bin/jaula
Y ahora le quedamos el siguiente contenido:
------------------------
#!/bin/bash
/usr/sbin/chroot /home/jaula /bin/bash
--------------------------
Le damos permisos de ejecución al fichero:
chmod a+x /bin/jaula
Opcionalmente podemos crearle una mini estructúra de directorios que pueda ejecutar una serie de aplicaicones básica, con ficheros ejecutables y librerías.
Por ejemplo, si queremos darle permisos de ejecución de bash, debemos comprobar que dependencias necesita:
root@localhost ~]# ldd /bin/bash
linux-gate.so.1 => (0x0013c000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x4ecec000)
libdl.so.2 => /lib/libdl.so.2 (0x4ee70000)
libc.so.6 => /lib/libc.so.6 (0x4ed08000)
/lib/ld-linux.so.2 (0x4e339000)
[root@localhost ~]#
Así pues, copiamos los directorios:
cp /lib/libc.so.6 /home/pajaro/lib/
Si quisieramos saber lo loalización exacta del fichero, por ejemplo "libdl" escribimos
[root@localhost ~]# whereis libdl
libdl: /usr/lib/libdl.a /usr/lib/libdl.so
[root@localhost ~]#
y crearemos la estructura similar...
mkdir /home/pajaro/usr/lib
y luego copiaremos
cp /usr/lib/libdl.so /home/pajaro/usr/lib/
Bueno, ya tenemos todo listo, aunque ahora mismo el usuario no podría hacer nada, así que le dejamos por ejemplo que pueda hacer ls y cp Para ello debemos copiar /bin/ls a /home/pajaron/bin, deberíamos comprobar de qué librerías dependen:
Como ya tenemos creada la jaula, vamos a permitirle que pueda hacer "ls" y "cp", para ello comprobamos que dependencias necesita para poder copiarselas...
ldd /bin/ls
libtermcap.so.2 => /lib/libtermcap.so.2 (0x40028000)
libc.so.6 => /lib/tls/libc.so.6 (0x42100000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40008000)
Y lo copiamos...
cp /bin/ls /home/pajaro/bin
cp /bin/cp /home/pajaro/bin
Utilizaremos la aplicación usermod, para indicarle la "shell" para el usuario pájarola siguiente forma:
usermod -s /bin/jaula pajaro.
Podríamos hacer más cositas con la jaula del usuario, pero te invitamos a que le heches un vistazo a chroot.
[ 1 ], [ 2 ], [ 3 ], [ 4 ].
Tras identificarnos como root
su -
Creamos el usuario
adduser pajaro
passwd ******
El siguiente paso se puede hacer de muchas formas, desde editar el fichero /etc/passwd, hasta crear nuestra propia shell a través de un simple shell script, y vamos a hacer esto último:
Con nuestro editor de textos simple preferido, creamos una shell que se llamo "jaula" en /bin
gvim /bin/jaula
Y ahora le quedamos el siguiente contenido:
------------------------
#!/bin/bash
/usr/sbin/chroot /home/jaula /bin/bash
--------------------------
Le damos permisos de ejecución al fichero:
chmod a+x /bin/jaula
Opcionalmente podemos crearle una mini estructúra de directorios que pueda ejecutar una serie de aplicaicones básica, con ficheros ejecutables y librerías.
Por ejemplo, si queremos darle permisos de ejecución de bash, debemos comprobar que dependencias necesita:
root@localhost ~]# ldd /bin/bash
linux-gate.so.1 => (0x0013c000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x4ecec000)
libdl.so.2 => /lib/libdl.so.2 (0x4ee70000)
libc.so.6 => /lib/libc.so.6 (0x4ed08000)
/lib/ld-linux.so.2 (0x4e339000)
[root@localhost ~]#
Así pues, copiamos los directorios:
cp /lib/libc.so.6 /home/pajaro/lib/
Si quisieramos saber lo loalización exacta del fichero, por ejemplo "libdl" escribimos
[root@localhost ~]# whereis libdl
libdl: /usr/lib/libdl.a /usr/lib/libdl.so
[root@localhost ~]#
y crearemos la estructura similar...
mkdir /home/pajaro/usr/lib
y luego copiaremos
cp /usr/lib/libdl.so /home/pajaro/usr/lib/
Bueno, ya tenemos todo listo, aunque ahora mismo el usuario no podría hacer nada, así que le dejamos por ejemplo que pueda hacer ls y cp Para ello debemos copiar /bin/ls a /home/pajaron/bin, deberíamos comprobar de qué librerías dependen:
Como ya tenemos creada la jaula, vamos a permitirle que pueda hacer "ls" y "cp", para ello comprobamos que dependencias necesita para poder copiarselas...
ldd /bin/ls
libtermcap.so.2 => /lib/libtermcap.so.2 (0x40028000)
libc.so.6 => /lib/tls/libc.so.6 (0x42100000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40008000)
Y lo copiamos...
cp /bin/ls /home/pajaro/bin
cp /bin/cp /home/pajaro/bin
Utilizaremos la aplicación usermod, para indicarle la "shell" para el usuario pájarola siguiente forma:
usermod -s /bin/jaula pajaro.
Podríamos hacer más cositas con la jaula del usuario, pero te invitamos a que le heches un vistazo a chroot.
[ 1 ], [ 2 ], [ 3 ], [ 4 ].
-
Linux
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad
- RebornOS es una versión hermosa y fácil de usar de Arch Linux con abundantes opciones de escritorio
- Linus Torvalds sobre el 'hilarante' bombo de la IA
- Cambiar la hora en Linux con Chrony
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- Linux 6.9 será el primero en superar los 10 millones de objetos Git
- Zorin OS 17.1 lanzado con soporte mejorado para aplicaciones de Windows, edición educativa