¿Cómo deshabilito completamente una cuenta? passwd -l
no permitirá que nadie inicie sesión en una cuenta con una contraseña, pero aún puede iniciar sesión a través de claves privadas / públicas. ¿Cómo deshabilitaría la cuenta por completo? Como una solución rápida cambié el nombre del archivo a authorized_keys_lockme
. ¿Hay otra manera?
users
account-restrictions
Braiam
fuente
fuente
Respuestas:
La forma correcta según
usermod(8)
es:(En realidad, el argumento
--expiredate
puede ser cualquier fecha anterior a la fecha actual en el formatoYYYY-MM-DD
).Explicación:
--lock
bloquea la contraseña del usuario. Sin embargo, todavía es posible iniciar sesión por otros métodos (por ejemplo, clave pública).--expiredate YYYY-MM-DD
deshabilita la cuenta en la fecha especificada. Segúnman shadow 5
1970-01-01 es un valor ambiguo y no se utilizará.He probado esto en mi máquina. No es posible iniciar sesión con contraseña ni clave pública después de ejecutar este comando.
Para volver a habilitar la cuenta en una fecha posterior, puede ejecutar:
fuente
usermod --unlock --expiredate '' username
lo hará.usermod
dice:Note: if you wish to lock the account (not only access with a password), you should also set the EXPIRE_DATE to 1.
--expiredate 1
no es suficiente por sí solo?sudo su username
parece funcionar con otra cuenta.Bloquee la contraseña y cambie el shell a
/bin/nologin
.(O más concisamente
sudo usermod -L -s /bin/nologin username
.)fuente
ssh username@hostname /bin/bash
le dará al usuario un mensaje bash, independientemente del shell predeterminado.sudo chsh -s /bin/nologin
Sería mejor que editar/etc/passwd
a mano. Además, en algunos sistemas, lo es/sbin/nologin
.Aquí hay otra manera simple. Puede configurar la cuenta de usuario caducada. Esto evitará los inicios de sesión basados en contraseña y en clave ssh para la cuenta, pero no toca la contraseña.
Para bloquear la cuenta:
La cuenta de usuario 'nombre de usuario' se bloqueará en el sistema. Para volver a habilitar la cuenta de usuario, haga lo siguiente.
Para desbloquear la cuenta:
El 'nombre de usuario' de la cuenta de usuario se volverá a habilitar en su sistema con la misma contraseña que antes. El binario 'chage' es parte del paquete shadow-utils en Red Hat Linux, o el paquete passwd en Debian Linux.
fuente
No tengo suficiente representante para comentar la respuesta de Legate, pero quería compartir que esta respuesta nos ayudó con otro caso de uso:
1.) la cuenta en cuestión es una cuenta de servicio local que ejecuta una aplicación, no una cuenta de usuario final.
2.) los usuarios finales ssh en sí mismos, y
sudo /bin/su <user>
para convertirse en usuarios y administrar la aplicación debido a un requisito de seguimiento de auditoría que la cuenta de servicio no puede tener la capacidad de inicio de sesión directo.3.) la cuenta de servicio debe tener un shell válido (
/bin/bash
no/sbin/nologin
), porque una Enterprise Scheduling Platform (el agente se ejecuta como root localmente) debe podersu - <user>
y no tiene lasu -s /bin/bash <user>
capacidad que tiene un shell completo, y es necesario para ejecutar trabajos de forma remota para operaciones por lotes más grandes que abarcan múltiples servidores y bases de datos.Entonces ...
passwd -l <user>
No satisface las restricciones porque la autenticación de clave pública omite PAM y aún permite el inicio de sesión directo.
usermod -s /sbin/nologin <user>
No satisface las restricciones porque rompe el planificador empresarial
usermod --lock --expiredate 1970-01-01 <user>
Este es nuestro ganador. El inicio de sesión remoto está deshabilitado, pero la raíz aún puede
su <user>
, al igual que otros usuarios a través desudo
modo que el planificador funciona correctamente y los usuarios finales autorizados pueden convertirse en la cuenta de servicio objetivo según sea necesario.¡Gracias por la solución!
fuente
Para eliminarlo por completo use
userdel
.Tenga en cuenta que si elimina una cuenta, existe el riesgo de que su ID de usuario se siga utilizando en algún lugar del sistema de archivos y que un nuevo usuario herede la propiedad de esos archivos si se ingresó con el mismo ID de usuario.
Desea cambiar el propietario de los archivos que son propiedad del usuario eliminado.
Si desea volver a agregar al usuario más tarde, guarde sus líneas desde
/etc/passwd
(y en Solaris/etc/shadow
) en archivos temporales como/etc/passwd_deleted
.De esa manera, cuando lo agregue de nuevo, puede usar la misma identificación de usuario y la misma contraseña (que está encriptada en uno de los archivos anteriores)
Descargo de responsabilidad: aprendí UNIX por mi cuenta, así que no me sorprendería si hay una mejor manera de deshabilitar temporalmente al usuario. De hecho, ni siquiera sé de qué claves privadas / públicas estás hablando. También estoy seguro de que hay un
find
comando que se puede usar para buscar los archivos con ese ID de usuario propietariofuente
¿Alguien ha intentado hacerlo a través de ssh_config? Tal vez esto podría ayudar http://www.techrepublic.com/blog/opensource/set-up-user-accounts-quickly-and-securely/86
fuente