web-dev-qa-db-fra.com

Exécuter adduser de manière non interactive

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

Par défaut, adduser vous invite à saisir différentes valeurs (par exemple, Nom complet). Est-il possible de soumettre ces valeurs via la ligne de commande? Ou devrai-je plutôt useradd?

189
Lorin Hochstein

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

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

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

--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 en tant que telle: Full name,Room number,Work phone,Home phone, malgré que la page de manuel mentionne finger informationDétails - Wikipedia

J'espère que cela vous aide.

248
Zoke

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

useradd -m -p <encryptedPassword> -s /bin/bash <user>
  • -m, --create-home: Créer le répertoire de base de l'utilisateur
  • -p, --password: spécifiez le mot de passe de l'utilisateur; ignorer qu'il soit désactivé
  • -s, --Shell: Shell par défaut pour l'utilisateur connecté

    Blank utilisera le shell de connexion par défaut spécifié par la variable Shell dans /etc/default/useradd

  • Remplacez <user> par le nom d'utilisateur
  • Remplacez <encryptedPassword> par le mot de passe crypté

Générer un mot de passe haché:

Il y a beaucoup d'implémentations crypt3 pouvant générer un mot de passe haché. Le tout est votre mot de passe haché.

Base de 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 dollar $ASDF1234), le reste est la charge utile.

  • mkpasswd mkpasswd -m sha-512

    (mkpasswd est fourni par le package whois)

DES basé:

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

  • mkpasswd: mkpasswd (fourni par le paquet whois)
  • openssl: openssl passwd -crypt
  • Perl: Perl -e "print crypt('password');"
  • python: python3 -c 'import crypt; print(crypt.crypt("password"))'
36
ThorSummoner