desarrollo-web-br-bd.com

Deshabilite el inicio de sesión de un usuario sin deshabilitar la cuenta

Digamos que creo un usuario llamado "falso" usando el comando adduser. ¿Cómo puedo asegurarme de que este usuario NO sea una opción de inicio de sesión viable, sin deshabilitar la cuenta? En resumen, quiero que se pueda acceder a la cuenta a través de su - bogus, pero no quiero que sea accesible a través de un mensaje de inicio de sesión regular.

Buscando alrededor, parece que necesito deshabilitar la contraseña de ese usuario, pero haciendo passwd -d bogus no ayudó. De hecho, empeoró las cosas, porque ahora podía iniciar sesión en falso sin siquiera escribir una contraseña.

¿Hay alguna manera de deshabilitar los inicios de sesión regulares para una cuenta determinada?

Nota: para ser claros, sé cómo eliminar a un usuario de las opciones de menú de las pantallas de inicio de sesión gráficas como gdm, pero estos métodos simplemente ocultan la cuenta sin inhabilitar el inicio de sesión. Estoy buscando una manera de desactivar el inicio de sesión normal por completo, incluido el modo de texto.

92
Malabarba
passwd -l user

es lo que quieres.

Eso bloqueará la cuenta de usuario. Pero aún podrás

su - user

pero tendrás que su - user como root.

Alternativamente, puede lograr lo mismo anteponiendo un ! a la contraseña del usuario en /etc/shadow (esto es todo passwd -l hace detrás de escena). Y passwd -u deshacerá esto.

105
Chad Feller

La página de manual de passwd(1) dice acerca de passwd -l:

Tenga en cuenta que esto no deshabilita la cuenta. El usuario aún puede iniciar sesión con otro token de autenticación (por ejemplo, una clave SSH). Para deshabilitar la cuenta, los administradores deben usar usermod --expiredate 1 (esto establece la fecha de vencimiento de la cuenta al 2 de enero de 1970).

Entonces

usermod --expiredate 1 [LOGIN]

me parece la forma correcta de deshabilitar una cuenta que un usuario ya no debería poder usar (por ejemplo, porque dejó la empresa).

39
Jörg Gottschlich

Hay dos métodos para evitar que un usuario pueda iniciar sesión:

  1. puedes bloquear al usuario editando /etc/passwd
  2. emitiendo directamente el comando passwd con el -l cambiar

En el segundo caso, el usuario puede iniciar sesión utilizando otro token de autenticación (por ejemplo, una clave SSH).

Método # 1

  1. Encuentre dónde está nologin:/bin/nologin o/bin/sbin/nologin
  2. Abra una terminal e inicie sesión como root
  3. Tipo vi /etc/passwd

Ahora estás en passwd archivo de prensa Ins para editar el archivo.

Cambie la línea a continuación con la opción nologin (/bin/bash significa que el usuario puede iniciar sesión).

root:x:0:0:root:/root:/bin/bash

a esto. nologin significa que el usuario no puede iniciar sesión.

root:x:0:0:root:/root:/bin/nologin

(o con/bin/sbin/nologin)

  1. Cierra el vi Esc:wq

Método # 2

Para bloquear el usuario: passwd -l username

Para desbloquear usuario: passwd -u username

28
Mansur Ul Hasan

Es una tarea bastante sencilla, simplemente tiene que hacer algunos cambios en /etc/passwd archivo.

Simplemente tiene que cambiar el Shell, que generalmente es por defecto /bin/bash Es decir, puede iniciar sesión con este Shell, cámbielo a /bin/nologin o /bin/false. Es recomendable cambiarlo a /bin/nologin porque /bin/false Esta anticuado.

7
PRABHAT PARASHAR

Establecer /bin/false como Shell en /etc/passwd

4
danadam

Cuando bloqueamos al usuario usando passwd -l user comando, "!! "se indican en el /etc/shadow archivo. Pero aún podemos cambiar a un Shell de usuario desde la cuenta raíz, pero no podemos cambiar a la cuenta de usuario por otros usuarios normales.

También podemos desactivar la cuenta proporcionando /bin/nologin o /bin/false dentro /etc/passwd archivo. Por lo tanto, es posible que el usuario no pueda iniciar sesión.

0
Sushil Musande