LShell o Limited Shell está escrito en python para limitar al usuario para un conjunto específico de comandos y directorios. Puede crear un entorno de usuario con acceso limitado, también puede habilitar comandos de desactivación sobre el acceso SSH.
Instalar Shell limitado
Use el siguiente comando para instalar el paquete LShell en su sistema basado en Debian. Para otro sistema operativo, debe buscar en Google el paquete de lshell para su distribución.
$ sudo apt-get install lshell
Cambiar usuario a LShell
Ahora configure LShell como shell predeterminado para los usuarios para los que es necesario. Por ejemplo, para cambiar el caparazón del usuario sarah.
$sudo chsh sarah Changing the login shell for sarah Enter the new value, or press ENTER for the default Login Shell [/bin/lshell]:/usr/bin/lshell
También puede configurar lshell como shell predeterminado para el usuario durante la creación de la cuenta de usuario de la siguiente manera.
$ sudo adduser --shell /usr/bin/lshell raj
Configurar LShell
Ahora comience con la configuración de lshell. Edite el archivo de configuración de lshell /etc/lshell.conf . Hay 4 secciones básicas en el archivo de configuración.
[global] : En esta sección definimos la configuración que se aplica globalmente. Por ejemplo, registros.[predeterminado] : En esta sección establecemos valores predeterminados que se aplican a todos los usuarios y grupos. La configuración de esta sección se puede anular con la configuración específica del usuario y del grupo.[NOMBRE DE USUARIO] : En esta sección especificamos la configuración específica del usuario. La configuración de esta sección se aplica solo al usuario[grp:NOMBRE DEL GRUPO] : En esta sección especificamos la configuración específica del grupo. La configuración de esta sección se aplica a todos los usuarios del grupo
Un [predeterminado] El perfil se aplica a todos los usuarios que utilizan lshell. Puede crear [nombre de usuario] sección o un grupo [grp:groupname] sección para personalizar las preferencias específicas de los usuarios y grupos.
El orden de prioridad es Usuario>> Grupo>> Predeterminado . La sección de usuario tiene la prioridad más alta y la predeterminada tiene la prioridad más baja.
[global] logpath : /var/log/lshell/ loglevel : 2[default] allowed : ['ls','pwd','cd','cat','cp'] forbidden : [';', '&', '|','`','>','<', '$(', '${'] sudo_commands : ['ls', 'more'] warning_counter : 2 aliases : {'ll':'ls -l', 'vim':'rvim'} prompt : "%[email protected]%h" timer : 0 path : ['/home', '/usr'] env_path : ':/usr/bin/usr/local/bin' env_vars : {'foo':1, 'bar':'helloworld'} scp : 1 # or 0 sftp : 1 # or 0 overssh : ['rsync','ls'] strict : 0 history_file : "/home/%u/.lshell_history"[grp:wheel] warning_counter : 5 overssh : - ['ls'][raj] allowed : 'all' - ['su','rm','mv'] path : ['/etc', '/usr'] - ['/usr/local'] home_path : '/home/raj'[sarah] allowed : + ['ping'] - ['ls'] path : - ['/usr/local'] strict : 1 scpforce : '/home/sarah/uploads/'
Por ejemplo, el usuario 'rja' y el usuario 'sarah' pertenecen al grupo UNIX 'rueda':
Rueda de grupo:
- Los usuarios del grupo de ruedas tienen un contador de advertencia establecido en 5
- Los usuarios del grupo de ruedas no tienen permitido el comando 'ls'.
Usuario raj:
- Puede acceder a /etc y /var pero no a /usr/local
- Puede acceder a todos los comandos en su PATH excepto los comandos:su, rm, vm
- tiene un contador de advertencia establecido en 5 [predeterminado]
- ha establecido su ruta de inicio en '/home/raj'
Usuario Sara:
- Puede acceder a /home y /usr pero no a /usr/local
- está permitido el comando predeterminado 'ping' pero no 'ls'
- la rigurosidad se establece en 1 (no se le permite escribir un comando desconocido)
Nombre de la opción | Explicación |
---|---|
directorio de registro (predeterminado /var/log/lshell/ ) | |
establecer el nivel de registro en 0, 1, 2, 3 o 4 (0:sin registros, 1:menos detallado, 4:registrar todos los comandos) | |
configure el nombre del archivo de registro (el valor predeterminado es %u, es decir, nombredeusuario.log) | |
lista de los comandos permitidos o 'todos' para permitir todos los comandos en la RUTA del usuario | |
una lista de caracteres o comandos prohibidos:negar vim, ya que permite escapar de lshell | |
una lista de comandos permitidos para usar con sudo(8) | |
número de advertencias cuando el usuario ingresa un valor prohibido antes de salir de lshell, establecido en -1 para deshabilitar. | |
lista de alias de comandos (similar a la directiva de alias de bash) | |
texto de introducción para imprimir (al ingresar lshell) | |
configure su promt usando %u o %h (predeterminado:nombre de usuario) | |
establecer la actualización del directorio actual del indicador de ordenación (predeterminado:0) | |
un valor en segundos para el temporizador de sesión | |
lista de rutas para restringir al usuario “geográficamente” | |
establecer la carpeta de inicio de su usuario | |
establecer la variable de entorno $PATH del usuario | |
una lista de rutas; todos los archivos ejecutables dentro de esta ruta serán permitidos | |
añadir variables de entorno | |
permitir o prohibir el uso de scp (establecido en 1 o 0) | |
prohibir la carga de scp | |
prohibir la descarga de scp | |
permitir o prohibir el uso de sftp (establecido en 1 o 0) | |
lista de comandos permitidos para ejecutar sobre ssh | |
rigurosidad en el registro. 1 para cualquier comando desconocido se considera prohibido y 0 como desconocido | |
forzar archivos enviados a través de scp a un directorio específico | |
tamaño máximo del archivo de historial | |
establecer el nombre del archivo de historial (el valor predeterminado es /home/%u/.lhistory) | |
defina el script para que se ejecute en el inicio de sesión del usuario |