Supongamos que desea ejecutar un comando dentro de un chroot como otro usuario. ¿Cómo se hace? En este artículo exploraremos el camino para lograrlo . No es algo evidente . Por tanto iré explicando paso a paso pues lo más importante es familiarizarse con los comandos de los sistemas Unix y entender porqué se hace lo que se hace cuando se hace. Si desea conocer acerca de otros comandos le sugiero leer también otros artículos acerca de comandos Unix . Si este tutorial le resulta interesante le invito a suscribirse a este blog mediante RSS . ¿Listos? ¡ Comenzamos !
Comenzamos echando un vistazo a man chroot . La sinopsis dice que el modo de uso es
$ chroot /new-root-path`
Bien , ya podemos ejecutar un comando dentro de un chroot como root . ¿Cómo hacemos para que cambie de usuario? Para eso está el comando su .
$ chroot /new-root-path su - user
Por ahora todo bien . Ya logramos ejecutar su dentro del chroot como user , pero ... se nos presenta un prompt interactivo . Al leer la documentación de man su la sinopsis dice
$ su - user cmd
¡Perfecto! Combinandolo todo nos queda :
$ chroot /new-root-path su - user sh
Sin embargo todavía nos quedamos dentro de un shell interactivo . ¿Como nos deshacemos del prompt? Al leer man sh aparece la opción sh -c "command args args..." , que lanzará un shell no interactivo y ejecutará el comando con ciertos argumentos . Exaxtmente lo que se buscaba . Combinandolo todo nos queda :
$ chroot /new-root-path su - user sh -c "command args"
Podría parecer que ya está todo bien , pero hay un detalle . Si el usuario tiene un [entorno personalizado] entonces el mismo no se inicializará automáticamente . Hay que hacerlo manualmente .
$ chroot /new-root-path su - user sh -c ". ~/.profile; command args"
Esto hace lo que se pide :
- crea un chroot en /new-root-path
- ejecuta el comando con ciertos argumentos en ese contexto
- devuelve el control a la sesión activa del shell
Pero ... bueno ... como no es aconsejable estar trabajando como root de forma cotidiana , ejecutamos todo esto con sudo
$ sudo chroot /new-root-path su - user sh -c ". ~/.profile; command args"
De esta forma es posible ejecutar ejecutables de fuentes desconocidas y codificar en un entorno seguro .
Si desea conocer otros trucos relacionados con comandos de Unix la inviación esta hecha para que se suscriba a este blog mediante RSS
No hay comentarios:
Publicar un comentario