Tenemos varias cuentas de usuario que creamos para tareas automatizadas que requieren permisos específicos, como la transferencia de archivos a través de sistemas, monitoreo, etc.
¿Cómo bloqueamos estas cuentas de usuario para que estos "usuarios" no tengan shell y no puedan iniciar sesión? Queremos evitar la posibilidad de que alguien pueda ingresar a SSH como una de estas cuentas de usuario.
/bin/false
Parece más común que/bin/true
.nologin
en realidad se encuentra en/usr/sbin/nologin
nologin
/usr/local/bin/maybe
cuál/dev/urandom
ly selecciona entre esos dos. Tal vez debería usarlo: DCambiar el shell de inicio de sesión no necesariamente impide que los usuarios se autentiquen (excepto en algunos servicios que verifican si se menciona el shell del usuario
/etc/shells
).Es posible que las personas aún puedan autenticarse en los diversos servicios que su sistema proporciona a los usuarios de Unix, y aún pueden estar autorizados para realizar algunas acciones, aunque probablemente no ejecuten comandos arbitrarios directamente.
Cambiar el shell
/bin/false
o/usr/sbin/nologin
solo evitará que ejecuten comandos en aquellos servicios que se pueden usar para ejecutar comandos (inicio de sesión de consola, ssh, telnet, rlogin, rexec ...), por lo que afectan la autorización solo para algunos servicios.Por
ssh
ejemplo, eso todavía les permite hacer reenvío de puertos.passwd -l
deshabilitará la autenticación de contraseña, pero el usuario aún puede usar otros métodos de autenticación (comoauthorized_keys
conssh
).Con
pam
en Linux, al menos, se puede utilizar elpam_shells
módulo para restringir la autenticación o autorización a los usuarios con una cáscara permitido (los mencionados en/etc/shells
). Parassh
, querrá hacerlo a nivel de autorización (account
) en cuanto a lossshd
usos de autenticaciónpam
además de otros métodos de autenticación (comoauthorized_keys
), o puede hacerlo consshd_config
directivas en/etc/ssh/sshd_config
(comoAllowUsers
y amigos).Sin embargo, tenga en cuenta que agregar algunas restricciones en la autorización global de pam evitará potencialmente ejecutar
cron
trabajos como esos usuarios.fuente
:|
Edita el
/etc/passwd
archivo y cambia el shell de usuarios desde/bin/bash
o/bin/sh
hacia/sbin/nologin
fuente
vipw
que evita ese tipo de error.Primero, deshabilite la contraseña, usando
passwd -l username
.También tenga en cuenta en la
man
páginapasswd
para la opción-l
:fuente
Puedes usar el comando chsh:
Ingrese nuevos detalles de shell cuando se le solicite:
O versión más corta:
fuente
Para evitar que el usuario inicie sesión e incluso la autenticación a través de ssh que permite el reenvío de puertos (como se describe aquí, Stephane), modifico el usuario para que sea similar al
nobody
usuario del sistema :/etc/shadow
(con*
o!!
en el campo apropiado)/etc/passwd
(por ejemplo,/sbin/nologin
en el campo adecuado)/etc/passwd
(por ejemplo,/
en el campo adecuado)fuente