GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo limitar el acceso del usuario al sistema Linux

Imagina este escenario. Desea permitir que un usuario realice solo ciertas tareas y ejecute ciertos comandos. El usuario no debe cambiar las variables/rutas de entorno. No puede visitar otros directorios excepto su directorio de inicio y no puede cambiar a otros usuarios, etc. El usuario solo puede ejecutar algunos comandos asignados por el administrador del sistema. ¿Es eso posible? ¡Sí! Aquí es donde Shell restringido viene en ayuda. Al usar Shell restringido, podemos limitar fácilmente el acceso de los usuarios al sistema Linux. Una vez que pone a los usuarios en modo de shell restringido, solo se les permite ejecutar un conjunto limitado de comandos. En este breve tutorial, hablaremos sobre cómo hacer esto en Linux. Probé esta guía en el servidor mínimo de CentOS 7. Sin embargo, funcionará en la mayoría de las distribuciones similares a Unix.

¿Qué es Shell restringido?

Primero, permítanme aclarar qué es exactamente Restricted Shell. No es un shell separado como Bash, Korn Shell, etc. Si inicia cualquier shell existente usando las opciones "rbash", "--restricted", "-r", entonces se convertirá en Shell restringido. Por ejemplo, el shell Bourne se puede iniciar como un shell restringido con el comando bsh -r y el shell Korn con el comando ksh -r .

El shell restringido impedirá que los usuarios ejecuten la mayoría de los comandos y cambien el directorio de trabajo actual. El Shell Restringido impondrá las siguientes restricciones a los usuarios:

  • No te permitirá ejecutar cd dominio. Así que no puedes ir a ningún lado. Simplemente puede permanecer en el directorio de trabajo actual.
  • No te permitirá modificar los valores de $PATH , $SHELL , $BASH_ENV o $ENV variables ambientales.
  • No le permitirá ejecutar un programa que contenga un carácter /(barra). Por ejemplo, no puede ejecutar /usr/bin/uname o ./uname dominio. Sin embargo, puede ejecutar el comando uname. En otras palabras, solo puede ejecutar los comandos en la ruta actual.
  • No puede redirigir la salida usando ' > ', ' >| ', '<> ', ' >& ', '&> ' y '>> operadores de redirección.
  • No le permitirá salir del modo de shell restringido dentro de los scripts.
  • No le permitirá desactivar el modo shell restringido con ‘set +r’ o ‘establecer +o restringido’ .

Esto puede ser muy útil cuando una gran cantidad de usuarios utilizan un sistema compartido. Entonces, si desea permitir que los usuarios ejecuten solo comandos específicos, Shell restringido es una manera de hacer esto.

Limitar el acceso del usuario al sistema Linux usando Shell restringido

Primero, crea un enlace simbólico llamado rbash de Bash como se muestra a continuación. Los siguientes comandos deben ejecutarse como root usuario.

# ln -s /bin/bash /bin/rbash

A continuación, cree un usuario llamado "ostechnix" con rbash como su shell de inicio de sesión predeterminado.

# useradd ostechnix -s /bin/rbash

Establecer contraseña para el nuevo usuario.

# passwd ostechnix

Crear un papelera directorio dentro de la carpeta de inicio del nuevo usuario.

# mkdir /home/ostechnix/bin

Ahora, necesitamos especificar qué comandos puede ejecutar el usuario.

Aquí, voy a permitir que el usuario ejecute solo "ls" , "mkdir" y "ping" comandos Puede asignar cualquier comando de su elección.

Para hacerlo, ejecute los siguientes comandos:

# ln -s /bin/ls /home/ostechnix/bin/ls
# ln -s /bin/mkdir /home/ostechnix/bin/mkdir
# ln -s /bin/ping /home/ostechnix/bin/ping

Ahora, comprende por qué creamos el directorio "bin" en el paso anterior. Los usuarios no pueden ejecutar ningún comando excepto los tres comandos anteriores.

A continuación, evite que el usuario modifique .bash_profile .

# chown root. /home/ostechnix/.bash_profile
# chmod 755 /home/ostechnix/.bash_profile

Editar /home/ostechnix/.bash_profile archivo:

# vi /home/ostechnix/.bash_profile

Modificar la variable PATH como a continuación.

[...]
PATH=$HOME/bin
[...]

Presiona ESC clave y escriba :wq para guardar y cerrar el archivo.

Ahora, cuando el usuario inicie sesión, el shell restringido (rbash) se ejecutará como el shell de inicio de sesión predeterminado y leerá el .bash_profile , que establecerá PATH en $HOME/bin para que el usuario solo pueda ejecutar ls , mkdir y ping comandos El shell restringido no permitirá que el usuario cambie RUTA y los permisos en .bash_profile no permitirá que el usuario altere el entorno para eludir las restricciones durante la próxima sesión de inicio de sesión.

Verificación de Rbash

Ahora, cierre la sesión del usuario raíz y vuelva a iniciar sesión con el usuario recién creado, es decir, ostechnix en nuestro caso.

Luego, ejecute algunos comandos para verificar si funciona o no. Por ejemplo, quiero borrar la Terminal.

Para hacerlo, ejecuté:

$ clear

Salida de muestra:

-rbash: clear: command not found

No puedes usar cd Comando para cambiar al directorio diferente.

$ cd /root

Salida de muestra:

-rbash: cd: restricted

Tampoco puede redirigir la salida usando > operador.

$ cat > file.txt

Salida de muestra:

-rbash: file.txt: restricted: cannot redirect output

El usuario "ostechnix" puede usar solo los comandos asignados por usted (el administrador del sistema, por supuesto). En nuestro caso, el usuario puede ejecutar los comandos ls, mkdir y ping.

$ ls
$ mkdir ostechnix
$ ping -c 3 google.com

Aparte de estos tres comandos, el usuario no puede realizar nada. Él/ella está completamente bajo tu control.

Lectura sugerida:

  • Cómo monitorear la actividad del usuario en Linux

Permitir nuevos comandos a los usuarios

Si desea asignar más comandos a un usuario, cierre la sesión del usuario actual y vuelva a ingresar a la raíz. usuario nuevamente y asigne los comandos como se muestra a continuación.

Por ejemplo, para permitir que el usuario (es decir, ostechnix) ejecute rm comando, ejecute el siguiente comando como root usuario.

# ln -s /bin/rm /home/ostechnix/bin/rm

Ahora el usuario puede usar el comando "rm".

Para obtener más detalles, consulte las páginas del manual en el enlace que figura a continuación.

  • Páginas man de Rbash

Linux
  1. Cómo bloquear o deshabilitar los inicios de sesión de usuarios normales en Linux

  2. Cómo verificar la versión del sistema operativo y Linux

  3. Cómo cambiar la identidad de un sistema Linux

  4. Linux:¿cómo restringir el acceso a Internet para un usuario en particular en la LAN usando Iptables en Linux?

  5. Cómo cambiar el shell predeterminado en Linux

Cómo cambiar el shell de usuario predeterminado en el sistema operativo Linux

Cómo unir un sistema Linux a un dominio de Active Directory

Los efectos de agregar usuarios a un sistema Linux

Cómo cambiar el shell predeterminado en el sistema Linux

Cómo usar el comando fd en el sistema Linux

Cómo saber los grupos de un usuario de Linux