Crear un usuario sin contraseña

66

Estoy tratando de crear un usuario sin contraseña como esta:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos ‘User for managing of git version control’ \
   --group \
   --disabled-password \
   --home /home/git \
   git

Está bien creado. Pero cuando trato de iniciar sesión con el usuario git obtengo la contraseña que ingresa:

su git
Password:...

Cuando lo dejo vacío me sale un error:

su: Authentication failed

Que pasa

Erik
fuente
1
Nada está mal, la autenticación falló como se esperaba. No recibirá un mensaje de error "no hay contraseña, no puede iniciar sesión".
scai
Pero necesito crear una carpeta .ssh debajo del usuario git, ¿cómo debo hacer eso?
Erik
1
Puede crearlo como root y establecer los permisos correctos, o ejecutarlo su gitcomo root donde no tiene que proporcionar una contraseña.
scai
44
Mediante el uso de chmody chown.
scai
1
Fuera de tema, pero es "un usuario", no "un usuario". writersdigest.com/online-editor/…
David Baucum

Respuestas:

31

Ha creado un usuario con una "contraseña deshabilitada", lo que significa que no hay una contraseña que le permita iniciar sesión como se usa. Esto es diferente de crear un usuario en el que cualquiera pueda iniciar sesión sin proporcionar una contraseña, lo que se logra especificando una contraseña vacía y rara vez es útil.

Para ejecutar comandos como tales usuarios del "sistema" que no inician sesión normalmente, debe saltar a través de la cuenta raíz:

su -c 'su git -c "git init"'

o

sudo -u git git init

Si desea que ciertos usuarios puedan ejecutar comandos como gitusuarios sin permitirles ejecutar comandos como root, configure sudo (ejecutar visudocomo root y agregar una línea como %gitters ALL = (git) ALL).

Gilles 'SO- deja de ser malvado'
fuente
@JulienRicard Er, sí, y? Hay varias formas en que se puede entender "usuario sin contraseña", y respondo por el caso de uso que figura en la pregunta. Una pregunta sobre, por ejemplo, la creación de un usuario invitado sería una pregunta diferente.
Gilles 'SO- deja de ser malvado'
41

La --disabled-passwordopción no establecerá una contraseña, lo que significa que ninguna contraseña es legal, pero todavía es posible iniciar sesión (por ejemplo, con claves SSH RSA).

Para crear un usuario sin contraseña, use passwd -d $usernamedespués de crear el usuario para dejar la contraseña vacía. Tenga en cuenta que no todos los sistemas permiten que los usuarios con contraseña vacía inicien sesión.

pallxk
fuente
3
Esto no parece funcionar en la versión 16 de ubuntu
Daniel Tate
@DanielTate consiguió trabajar con: unix.stackexchange.com/a/472968/32558
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
9

Si desea acceder al sistema con el usuario git, debe usar sudo:

sudo -s -u git

o

sudo su - git
Didi Kohen
fuente
4

Crear un usuario con contraseña vacía

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

La solicitud de contraseña todavía se muestra desafortunadamente.

Pero si solo presiona Intro sin escribir nada, e inicia sesión como usuario test-user-0.

Las -ebanderas indican chpasswdque la contraseña ya está encriptada y U6aMy0wojrahoes el hash de la cadena vacía.

Probado en Ubuntu 18.04.

Terminal autologin con getty -a

Al menos en el terminal, no necesita crear un usuario sin contraseña para permitir que alguien no escriba sus contraseñas cada vez.

Pude hacer esto en BusyBox modificando inittab: ¿Cómo iniciar sesión automáticamente sin escribir el nombre de usuario o contraseña raíz en Buildroot BusyBox init?

Por lo tanto, creo que no debería ser muy difícil adaptar esa técnica modificando los scripts del sistema systemd init de Ubuntu 18.04 para configurar un getty -a <user>terminal como se menciona en esa respuesta, aunque no he intentado hacerlo yo mismo.

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
fuente
2

Creo que esto es lo que quieres:

adduser --disabled-password --shell /bin/bash --gecos "User" $username

Usted será capaz de

su $username

para ejecutar comandos como ese usuario, en / bin / bash o cualquier shell que especifique. --gecos "Usuario" simplemente pone "Usuario" en el campo de comentarios para que no se le solicite esa información. Puedes poner lo que quieras en ese campo.

Douglas Krugman
fuente