297 votes

Exécuter adduser de manière non-interactive

J'aimerais utiliser le adduser pour ajouter un utilisateur (avec mot de passe désactivé) via un Shell Shell.

Par défaut, adduser vous invite à saisir diverses valeurs (par exemple, le nom complet). Existe-t-il un moyen de soumettre ces valeurs via la ligne de commande ? Ou dois-je useradd à la place ?

370voto

Zoke Points 8516

Utilisez le --gecos pour ignorer l'option chfn partie interactive.

adduser --disabled-password --gecos "" username

Tout est dans la page de manuel. Ce n'est pas la formulation la plus évidente, cependant.

--gecos GECOS
          Set  the  gecos field for the new entry generated.  adduser will
          not ask for finger information if this option is given.

Le champ GECOS est une liste séparée par des virgules comme telle : Full name,Room number,Work phone,Home phone malgré le fait que cette page de manuel mentionne finger information Détails - Wikipédia

J'espère que cela vous aidera.

63voto

ThorSummoner Points 2831

useradd peut également ajouter des utilisateurs et ne semble pas avoir de forme d'invite intégrée.

useradd -m -p <encryptedPassword> -s /bin/bash <user>
  • -m , --create-home : Créer le répertoire personnel de l'utilisateur

  • -p , --password : Spécifier le mot de passe de l'utilisateur ; sauter pour le faire désactiver

  • -s , --shell : Shell par défaut pour l'utilisateur de connexion

    Blank utilisera l'identifiant par défaut Shell spécifié par l'utilisateur. SHELL variable dans /etc/default/useradd

  • Substitut <user> avec le nom d'utilisateur

  • Substitut <encryptedPassword> con el crypté mot de passe


Génération d'un mot de passe haché :

Il y a beaucoup des implémentations de crypt3 qui peuvent générer un mot de passe haché. Le tout est votre mot de passe haché.

Basé sur Sha-512

Le format de sortie résultant : le mécanisme de hachage ( $6 pour sha-512), le sel aléatoire (les huit octets après le deuxième signe de dollar $ASDF1234 ), le reste étant la charge utile.

  • mkpasswd mkpasswd -m sha-512

    ( mkpasswd est fourni par le whois paquet)

Basé sur le DES :

Le format de sortie résultant : les 2 premiers octets sont votre sel, le reste est la charge utile. Le tout est votre mot de passe haché.

  • mkpasswd : mkpasswd (fourni par whois paquet)
  • openssl : openssl passwd -crypt
  • perl : perl -e "print crypt('password');"
  • Python : python3 -c 'import crypt; print(crypt.crypt("password"))'

10voto

Bruno Bronosky Points 725

Vous pouvez combiner ce que @ThorSummoner @Zoke disent comme ça :

username=jovyan
password=jovyan

adduser --gecos "" --disabled-password $username
chpasswd <<<"$username:$password"

Je fais cela pour mon docker-stack Jupyter. Cela permet une configuration complète sans tête dans un Dockerfile.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X