GNU/Linux >> Linux の 問題 >  >> Linux

Linux でユーザーに初期/デフォルト パスワードを割り当てるにはどうすればよいですか?

chpasswd を使用できます これを行うには、次のようにします:

echo "username:newpassword" | chpasswd

chpasswd にパイプできます echo 以外のプログラムから 、都合がよければですが、これでうまくいきます。

編集:シェル スクリプト内でパスワードを生成して設定するには、次のようにします。

# Change username to the correct user:
USR=username
# This will generate a random, 8-character password:
PASS=`tr -dc A-Za-z0-9_ < /dev/urandom | head -c8`
# This will actually set the password:
echo "$USR:$PASS" | chpasswd

chpasswd の詳細については、 、http://linux.die.net/man/8/chpasswd を参照

(パスワードを生成するコマンドは http://nixcraft.com/shell-scripting/13454-command-generate-random-password-string.html からのものです)


OpenSSL を使用して、ランダム パスワード (この場合は 16 文字) を生成できます:

# 1000 bytes should be enough to give us 16 alphanumeric ones
p=$(openssl rand 1000 | strings | grep -io [[:alnum:]] | head -n 16 | tr -d '\n')

次に、ハッシュ化されたパスワードを useradd にフィードします または usermod

# omit the "-1" if you want traditional crypt()
usermod -p $(openssl passwd -1 "$p") <username>

編集:

これを 2012 年に投稿して以来、OpenSSL の新しいバージョンでは openssl passwd に機能が追加されています。 指図。 -1 を使用する代わりに MD5 ベースのハッシュを取得するオプション、最新バージョンも -5 をサポート SHA256 ベースのハッシュと -6 用 SHA512 ベースのハッシュ用。

正当な理由:パスワードの生成は、/dev/urandom を使用する同様の方法から採用されています openssl の代わりに .


ユーザー追加 動作するはずです(Ubuntuで実行しました)。たぶん、各引数が正しいことを確認してください(グループが存在し、パスがbashするのに正しいです)。パスワードとユーザーのみでコマンドを実行し、userdel を使用できます。 削除してから、より多くのパラメーターを使用して再試行し、問題の原因を確認します (ブルート フォース アプローチ)。

新規ユーザーもいます (manページを参照)、少なくともUbuntuでは、プレーンテキストのパスワードを含む、infoのようなpasswdファイルを含むファイルを指定すると、それらのユーザーが作成されます。一度に多くのユーザーを処理するための優れた方法です。


Linux
  1. Linuxでユーザーパスワードをクリアテキストとして表示するにはどうすればよいですか?

  2. ユーザーはいくつの Unix グループのメンバーになれますか?

  3. Linux でユーザーのデフォルト グループを変更するにはどうすればよいですか?

  1. Linuxでユーザーパスワードの有効期限とエージングを管理する方法

  2. Linuxでユーザーパスワードを変更、削除、または無効にする方法

  3. LinuxでIDでユーザー名を検索するにはどうすればよいですか?

  1. BashスクリプトにUnix/Linuxユーザーを追加する方法は?

  2. Linuxでユーザーパスワードを変更または設定する方法

  3. Linux ユーザーのホーム ディレクトリのクリアとデフォルトへのリセットを自動化するにはどうすればよいですか?