adduserを非対話形式で実行します


198

このadduserコマンドを使用して、シェルスクリプトを介して(パスワードが無効な)ユーザーを追加したいと思います。

デフォルトでadduserは、さまざまな値(例:フルネーム)の入力を求められます。コマンドライン経由でこれらの値を送信する方法はありますか?または、useradd代わりにする必要がありますか?

回答:


262

--gecosオプションを使用して、chfnインタラクティブ部分をスキップします。

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

すべてmanページにあります。最も明白な処方トーではありません。

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

GECOSフィールドは、カンマ区切りのリストFull name,Room number,Work phone,Home phoneです。そのマニュアルページに詳細が記載されているにもかかわらずfinger information -Wikipedia

これがお役に立てば幸いです。


41

useradd ユーザーを追加することもでき、どのような形式のプロンプトも組み込まれていないようです。

useradd -m -p <encryptedPassword> -s /bin/bash <user>
  • -m--create-home:ユーザーのホームディレクトリを作成します
  • -p--password:ユーザーパスワードを指定します。スキップして無効にします
  • -s--shell:ログオンユーザーのデフォルトシェル

    空白の場合、SHELL変数で指定されたデフォルトのログインシェルが使用されます/etc/default/useradd

  • 代替<user>ログイン名と
  • 代入し<encryptedPassword>暗号化されたパスワード

ハッシュ化されたパスワードの生成:

あり、多くのハッシュされたパスワードを生成することができcrypt3実装のでは。全体がハッシュ化されたパスワードです。

Sha-512ベース

結果の出力形式:ハッシュメカニズム($6sha-512の場合)、ランダムソルト(2番目のドル記号の後の8バイト$ASDF1234)、残りはペイロードです。

  • mkpasswd mkpasswd -m sha-512

    (パッケージmkpasswdによって提供されwhoisます)

DESベース:

結果の出力形式:最初の2バイトはソルト、残りはペイロードです。全体がハッシュ化されたパスワードです。

  • mkpasswd:(パッケージでmkpasswd提供whois
  • openssl: openssl passwd -crypt
  • perl: perl -e "print crypt('password');"
  • python: python3 -c 'import crypt; print(crypt.crypt("password"))'

1
あなたが言及したオプションはadduser、私の(最近の)バージョンのUbuntuには存在しません。
ᴠɪɴᴄᴇɴᴛ

1
@ᴠɪɴᴄᴇɴᴛはとadduserは異なり、useraddわかりにくい。
ThorSummoner

1
おっと、あなたがそのほとんど同じ名前を使用していることを実際に逃しました...コマンドラインの名前空間を保護するBDFLはありませんか?; P
ᴠɪɴᴄᴇɴᴛ

1
@ mum007これは追加してみてください、唯一の一般的なアドバイスである-vか、-vvまたは-vvvあなたのsshにいただきました!間違って参照し、SOまたはGoogleでここにあなたのエラーメッセージを検索するためのコマンド。
ThorSummoner

1
@KovacsAkosはこれを試してみてください:sudo sed -i"" -e "s/PasswordAuthentication no/PasswordAuthentication yes/" /etc/ssh/sshd_configそしてsudo service ssh restart
-JSBach
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.