Un shell restringido limita lo que puede hacer una cuenta de usuario en Linux. Un usuario restringido no puede cambiar su directorio y usted controla a qué comandos tiene acceso. A continuación, se explica cómo configurar un shell restringido en Linux.
Un caparazón restringido no es un caparazón diferente. Es un modo diferente de un shell estándar . El Bash , Korn , Fish y otros proyectiles se pueden iniciar en el modo de proyectil restringido. Usaremos Bash en este artículo, pero los mismos principios se aplican a los otros shells.
Debido a que los shells restringidos son solo otra forma de usar su shell estándar, son fáciles de configurar. No hay nada que instalar y están disponibles dondequiera que esté Linux.
Los shells restringidos también se pueden aplicar a los scripts. Eso asegura que cualquier daño que puedan causar si se han escrito incorrectamente se limite a los confines de su mundo restringido y que no tengan acceso a toda su computadora.
Sin embargo, tenga en cuenta que los proyectiles restringidos no son completamente a prueba de fugas. Alguien con suficiente conocimiento puede escapar de un caparazón restringido. Son excelentes para poner límites seguros a un usuario ocasional, pero no confíe en shells restringidos para la seguridad del mundo real en un sistema de producción.
Cuando ejecuta Bash como un shell restringido, el usuario tiene algunas capacidades eliminadas. Específicamente, el usuario no puede :
cd
para cambiar el directorio de trabajo.$PATH
, $SHELL
, $BASH_ENV
, o $ENV
variables ambientales (pero pueden leer los valores actuales).$SHELLOPTS
las opciones de entorno de shell./
”.exec
para sustituir el shell por un proceso diferente.Puede invocar un shell Bash restringido mediante la -r
opción (restringido). Está prohibido intentar realizar una tarea sencilla como cambiar el directorio de trabajo. Un mensaje conciso le dice que cd
está restringido.
bash -r
documentos en cd
El shell Bash también puede detectar cuándo se ha invocado usando «rbash» en lugar de «bash». Esto también hace que se inicie como un shell restringido. Esto proporciona una forma conveniente de configurar el shell predeterminado para un usuario en particular, que usaremos pronto.
Si usamos el whereis
comando en Ubuntu para buscar los rbash
archivos, veremos que el ejecutable está en el directorio «usr / bin». La página de manual está en el directorio “/ usr / share / man / man1”.
El uso del ls
comando con la -l
opción (larga) revela que en realidadrbash
es un enlace simbólico a bash
.
donde está rbash
ls -l / usr / bin / rbash
En Manjaro y Fedora, se rbash
tuvo que crear el enlace simbólico. Esto funciona en ambas distribuciones:
donde está rbash
sudo ln -s / bin / bash / bin / rbash
donde está rbash
La segunda vez que usamos el whereis
comando, se encuentra rbash
en el directorio “/ usr / bin”.
Creemos una nueva cuenta de usuario llamada «Minnie». Configuraremos su shell para que sea el shell restringido usando la -s
opción (shell) del useradd
comando. También configuraremos la contraseña de la cuenta usando el passwd
comando y crearemos una carpeta de inicio para ellos.
La -p
bandera (padres) en el mkdir
comando le dice mkdir
que cree el directorio de destino y cualquier directorio principal que necesite crear también. Entonces, al crear el directorio «/ home / minnie / bin», creamos el directorio «/ home / minnie» al mismo tiempo.
sudo useradd minnie -s / bin / rbash
sudo passwd minnie
sudo mkdir -p / inicio / minnie / bin
Cuando minnie inicie sesión, correrá en un caparazón restringido.
CD
No puede invocar comandos que deben incluir una barra diagonal » /
«:
/ usr / bin / ping
Sin embargo, aún puede ejecutar comandos que se encuentran en la ruta.
silbido
Ese no es el comportamiento que podría haber esperado, y ciertamente no es lo que queremos. Para endurecer aún más las restricciones, necesitamos cambiar la ruta que usará el caparazón de minnie para buscar comandos.
Cuando creamos el directorio de inicio de minnie «/ home / minnie», también creamos un directorio «/ home / minnie / bin». Aquí es donde entra en juego ese directorio.
Vamos a editar el archivo «.bash_profile» de minnie y establecer su ruta para que apunte solo a ese directorio. También restringiremos el archivo “.bash_profile” de minnie para que solo root pueda editarlo. Eso significa que ningún otro usuario puede editar ese archivo y cambiar su ruta.
sudo gedit /home/minnie/.bash_profile
Edite el «PATH =» existente o agregue la siguiente línea:
RUTA = $ INICIO / contenedor
Guarda el archivo. Cambiaremos el propietario del archivo a root usando el chown
comando y cambiaremos los permisos del archivo usando el chmod
comando. Solo el usuario root podrá editar el archivo.
sudo chown root: root /home/minnie/.bash_profile
sudo chmod 755 /home/minnie/.bash_profile
ls -l /home/minnie/.bash_profile
La próxima vez que la usuaria minnie inicie sesión, su ruta apunta a una sola carpeta.
Nuestra Minnie usuario restringido sólo pueden utilizar Bash comandos integrados como echo
, alias
, y logout
. ¡Ni siquiera puede usar ls
!
ls
Tendremos que aflojar un poco nuestro dominio si queremos que puedan hacer algo útil. Crearemos algunos enlaces simbólicos desde el directorio «bin» de minnie a los comandos que queremos que minnie pueda usar.
sudo ln -s / bin / ls / home / minnie / bin
sudo ln -s / bin / top / home / minnie / bin
sudo ln -s / bin / uptime / home / minnie / bin
sudo ln -s / bin / pinky / home / minnie / bin
La próxima vez que minnie inicie sesión, encontrará que puede usar los comandos integrados de Bash, además de los comandos a los que se han vinculado.
ls
meñique dave
tiempo de actividad
Creamos a minnie como un nuevo usuario. Para cambiar el shell de un usuario existente , podemos usar la -s
opción (shell) del usermod
comando.
sudo usermod -s / bin / rbash mary
Puede usar el less
comando en el archivo “/ etc / passwd” para ver rápidamente qué shell está configurado como shell predeterminado del usuario.
menos / etc / passwd
Podemos ver que el usuario mary usará el shell restringido la próxima vez que inicie sesión.
Recuerde aplicar los otros cambios para restringir su $PATH
variable de entorno y configurar los comandos que desea que el usuario mary pueda ejecutar.
Un usuario normal y sin restricciones puede iniciar scripts que se ejecutan en un shell restringido. Copie las siguientes líneas y péguelas en un editor. Guarde el archivo como «restricto.sh» y cierre el editor.
#! / bin / bash # el script se inicia en el shell Bash normal echo "## ¡En modo no restringido! ##" eco echo "Directorio actual:` pwd` " echo "Cambio de directorio" cd / usr / compartir echo "Ahora en el directorio:` pwd` " echo "Cambiando al directorio de inicio" cd ~ echo "Ahora en el directorio:` pwd` " # Configuración del modo restringido set -r eco echo "## ¡En modo restringido! ##" eco echo "Directorio actual:` pwd` " echo "Cambiando directorio a / home /" cd / hogar echo "Todavía en el directorio:` pwd` " eco echo "Intentando iniciar otro shell" / bin / bash eco echo "Intentando redirigir la salida del comando" ls -l $ HOME> mis_archivos.txt cat my_files.txt eco salir 0
Necesitamos usar el chmod
comando con la +x
bandera (ejecutar) para hacer que el script sea ejecutable.
chmod + x restricto.sh
La primera parte del script se ejecuta en un shell normal.
./restricted.sh
La segunda parte del script, el bit que sigue a la línea «set -r», se ejecuta en un shell restringido.
Ninguna de las acciones intentadas tiene éxito en la parte restringida del script.
Se puede hacer que un script completo se ejecute en un shell restringido agregando -r
a la primera línea:
! # / bin / bash -r
Los proyectiles restringidos son útiles, pero no completamente infalibles. Un usuario suficientemente capacitado puede escapar de ellos. Pero cuando se usan con prudencia, son una forma útil de establecer un conjunto de limitaciones para una cuenta en particular.
El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…
Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…
LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…
Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…
Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…
fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…