Créer un utilisateur sans mot de passe


66

J'essaie de créer un utilisateur sans mot de passe comme ceci:

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

C'est bien créé. Mais lorsque j'essaie de me connecter sous l'utilisateur git, je reçois le mot de passe en entrant:

su git
Password:...

Quand je le laisse vide, j'obtiens une erreur:

su: Authentication failed

Qu'est-ce qui ne va pas?


1
Rien n'est faux, l'authentification a échoué comme prévu. Vous n'obtiendrez pas le message d'erreur "il n'y a pas de mot de passe, vous ne pouvez pas vous connecter".
scai

Mais je dois créer un dossier .ssh sous l'utilisateur git, comment dois-je faire cela?
Erik

1
Créez-le en tant que root et définissez les autorisations appropriées ou exécutez-le en su gittant que root sans devoir fournir de mot de passe.
scai

4
En utilisant chmodet chown.
scai

1
Hors sujet, mais c'est "un utilisateur" pas "un utilisateur". writeersdigest.com/online-editor/…
David Baucum

Réponses:


31

Vous avez créé un utilisateur avec un «mot de passe désactivé», ce qui signifie qu'aucun mot de passe ne vous permettra de vous connecter tel que vous l'utilisez. Cela diffère de la création d'un utilisateur auquel n'importe qui peut se connecter sans avoir à fournir de mot de passe, ce qui est obtenu en spécifiant un mot de passe vide et est très rarement utile.

Pour exécuter des commandes en tant que tels, les utilisateurs «système» qui ne se connectent pas normalement, vous devez sauter via le compte root:

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

ou

sudo -u git git init

Si vous souhaitez que certains utilisateurs puissent exécuter des commandes en tant gitqu'utilisateur sans les laisser exécuter en tant que root, configurez sudo (exécutez-le en visudotant que root et ajoutez une ligne similaire à %gitters ALL = (git) ALL).


@ JulienRicard Euh, oui et? Il y a plusieurs façons de comprendre «utilisateur sans mot de passe», et je réponds au cas d'utilisation indiqué dans la question. Une question sur, par exemple, la création d'un utilisateur invité serait une question différente.
Gilles, arrête de faire le mal.

41

L' --disabled-passwordoption ne définira pas de mot de passe, ce qui signifie qu'aucun mot de passe n'est légal, mais la connexion est toujours possible (par exemple avec des clés SSH RSA).

Pour créer un utilisateur sans mot de passe, utilisez-le passwd -d $usernameaprès sa création pour vider le mot de passe. Notez que tous les systèmes n'autorisent pas les utilisateurs avec un mot de passe vide à se connecter.


3
Cela ne semble pas fonctionner dans la version 16 ubuntu
Daniel Tate

@DanielTate a eu ce genre de travail avec: unix.stackexchange.com/a/472968/32558
Ciro Santilli a été ajouté

9

Si vous souhaitez accéder au système sous l'utilisateur git, vous devez utiliser sudo:

sudo -s -u git

ou

sudo su - git

4

Créer un utilisateur avec un mot de passe vide

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

L'invite de mot de passe montre toujours malheureusement.

Mais si vous appuyez simplement sur Entrée sans rien taper, et il se connecte en tant qu'utilisateur test-user-0.

Les -eindicateurs indiquent chpasswdque le mot de passe est déjà crypté et qu'il U6aMy0wojrahos'agit du hachage de la chaîne vide.

Testé sur Ubuntu 18.04.

Connexion automatique du terminal avec getty -a

Sur le terminal au moins, vous n'avez pas besoin de créer un utilisateur sans mot de passe pour permettre à quelqu'un de ne pas saisir son mot de passe à chaque fois.

J'ai pu le faire sur BusyBox en modifiant inittab: Comment se connecter automatiquement sans saisir le nom d'utilisateur ou le mot de passe root dans Buildroot BusyBox init?

Je pense donc qu'il ne devrait pas être très difficile d'adapter cette technique en modifiant les scripts système systemd init d'Ubuntu 18.04 pour configurer un getty -a <user>terminal comme indiqué dans cette réponse, bien que je n'aie pas essayé de le faire moi-même.


2

Je pense que c'est ce que tu veux:

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

tu pourras

su $username

d'exécuter des commandes en tant qu'utilisateur, dans / bin / bash ou le shell que vous spécifiez. --gecos "User" suffit de mettre "User" dans le champ de commentaire pour ne pas être invité à cette information. Vous pouvez mettre ce que vous voulez dans ce domaine.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.