it-swarm.dev

Spusťte adduser neinteraktivně

Chtěl bych použít příkaz adduser k přidání uživatele (se zakázaným heslem) pomocí skriptu Shell.

Ve výchozím nastavení vás adduser vyzve k zadání různých hodnot (např. Celé jméno). Existuje nějaký způsob, jak tyto hodnoty odeslat pomocí příkazového řádku? Nebo budu muset místo toho useradd?

229
Lorin Hochstein

Použijte --gecos možnost přeskočit interaktivní část chfn.

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

Je to všechno na stránce man. Nejjasnější formulace tho.

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

Pole GECOS je seznam oddělený čárkami jako takový: Full name,Room number,Work phone,Home phone, navzdory tomu, že tato stránka zmiňuje finger informationPodrobnosti - Wikipedia

Doufám, že vám to pomůže.

290
Zoke

useradd může také přidat uživatele a zdá se, že nemá vestavěnou žádnou formu výzvy.

useradd -m -p <encryptedPassword> -s /bin/bash <user>
  • -m, --create-home: Vytvoření domovského adresáře uživatele
  • -p, --password: Zadejte heslo uživatele; přeskočte, chcete-li jej zakázat
  • -s, --Shell: Výchozí prostředí pro přihlašovacího uživatele

    Prázdné použije výchozí přihlašovací prostředí zadané proměnnou Shell v /etc/default/useradd

  • Nahraďte <user> Přihlašovacím jménem
  • Nahraďte <encryptedPassword> Heslem šifrováno

Generování hashovaného hesla:

Existuje hodně implementací crypt3, které mohou vygenerovat hashované heslo. Celá věc je vaše hashované heslo.

Na základě Sha-512

Výsledný výstupní formát: hashovací mechanismus ($6 Pro sha-512), náhodná sůl (osm bajtů po druhém znaku dolaru $ASDF1234), Zbytek je užitečné zatížení.

  • mkpasswd mkpasswd -m sha-512

    (mkpasswd poskytuje balíček whois)

DES založené:

Výsledný výstupní formát: první 2 bajty je vaše sůl, zbývající část je užitečné zatížení. Celá věc je vaše hashované heslo.

  • mkpasswd: mkpasswd (poskytováno balíčkem whois)
  • openssl: openssl passwd -crypt
  • Perl: Perl -e "print crypt('password');"
  • python: python3 -c 'import crypt; print(crypt.crypt("password"))'
48
ThorSummoner