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/falseParece más común que/bin/true.nologinen realidad se encuentra en/usr/sbin/nologinnologin/usr/local/bin/maybecuál/dev/urandomly 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/falseo/usr/sbin/nologinsolo 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
sshejemplo, eso todavía les permite hacer reenvío de puertos.passwd -ldeshabilitará la autenticación de contraseña, pero el usuario aún puede usar otros métodos de autenticación (comoauthorized_keysconssh).Con
pamen Linux, al menos, se puede utilizar elpam_shellsmó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 lossshdusos de autenticaciónpamademás de otros métodos de autenticación (comoauthorized_keys), o puede hacerlo consshd_configdirectivas en/etc/ssh/sshd_config(comoAllowUsersy amigos).Sin embargo, tenga en cuenta que agregar algunas restricciones en la autorización global de pam evitará potencialmente ejecutar
crontrabajos como esos usuarios.fuente
:|Edita el
/etc/passwdarchivo y cambia el shell de usuarios desde/bin/basho/bin/shhacia/sbin/nologinfuente
vipwque evita ese tipo de error.Primero, deshabilite la contraseña, usando
passwd -l username.También tenga en cuenta en la
manpáginapasswdpara 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
nobodyusuario del sistema :/etc/shadow(con*o!!en el campo apropiado)/etc/passwd(por ejemplo,/sbin/nologinen el campo adecuado)/etc/passwd(por ejemplo,/en el campo adecuado)fuente