web-dev-qa-db-fra.com

Créer un utilisateur sans mot de passe

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:...

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

su: Authentication failed

Qu'est-ce qui ne va pas?

70
Erik

Vous avez créé un utilisateur avec un "mot de passe désactivé", ce qui signifie qu'il n'y a pas de mot de passe qui vous permettra de vous connecter tel qu'il est utilisé. Ceci est différent de la création d'un utilisateur auquel n'importe qui peut se connecter sans fournir de mot de passe, ce qui est obtenu en spécifiant un mot de passe vide et est très rarement utile.

Afin d'exécuter des commandes en tant que tels 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 qu'utilisateur git sans les laisser exécuter des commandes en tant que root, configurez Sudo (exécutez visudo en tant que root et ajoutez une ligne comme %gitters ALL = (git) ALL).

L'option --disabled-password 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 les clés SSH RSA).

Pour créer un utilisateur sans mot de passe, utilisez passwd -d $username Une fois l'utilisateur créé pour rendre le mot de passe vide. Notez que tous les systèmes n'autorisent pas les utilisateurs dont le mot de passe est vide à se connecter.

42
pallxk

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

Sudo -s -u git

ou

Sudo su - git
9
Didi Kohen

Créez 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 s'affiche toujours malheureusement.

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

Le -e flags indique à chpasswd que le mot de passe est déjà crypté et U6aMy0wojraho est le 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 taper son mot de passe à chaque fois.

J'ai pu le faire sur BusyBox en modifiant inittab: Comment se connecter automatiquement sans taper 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 initd systemd d'Ubuntu 18.04 pour configurer un getty -a <user> terminal comme mentionné dans cette réponse, même si je n'ai pas essayé de le faire moi-même.

Je pense que c'est ce que vous voulez:

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

Tu pourras

su $username

pour exécuter des commandes en tant que cet utilisateur, dans /bin/bash ou tout autre Shell que vous spécifiez. --gecos "User" il suffit de mettre "User" dans le champ de commentaire afin que vous ne soyez pas invité à fournir ces informations. Vous pouvez mettre ce que vous voulez dans ce domaine.

3
Douglas Krugman