web-dev-qa-db-ja.com

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

ユーザーのパスワードを設定する の方法を説明するガイドを見つけました。私はそれを自動化して、次のようなユーザーに電子メールを送信しようとしています:

userid created with password XYZ.
request to change the initial password.

上記のドキュメントによれば、Python)を使用して暗号化されたパスワードを作成し、次のようにusermodコマンドに入力する必要があります。

 usermod -p "<encrypted-password>" <username>

これを行う他の簡単な方法はありますか?それを行うための特別なユーティリティをダウンロードしたくありません。可能な限り一般化する必要があります。


編集:上記のリンクで与えられた方法でさえ、私にはうまくいかないようです:

bash-3.00# python
Python 2.4.6 (#1, Dec 13 2009, 23:43:51) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt; print crypt.crypt("<password>","<salt>")
<sOMrcxm7pCPI
>>> ^D
bash-3.00# useradd -g other -p "sOMrcxm7pCPI" -G bin,sys -m -s /usr/bin/bash mukesh2
UX: useradd: ERROR: project sOMrcxm7pCPI does not exist.  Choose another.
UX: useradd: sOMrcxm7pCPI name should be all lower case or numeric.
10
munish

次のように、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 からのものです)

13

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>

クレジット:生成されるパスワード: 類似の方法 を使用したパスワード生成は、/dev/urandomの代わりにopenssl

3

seraddは動作するはずです(私はUbuntuで実行しました)。多分あなたの各引数が正しいことを確認してください(これらのグループが存在し、パスはbashする権利です)。パスワードとユーザーだけでコマンドを実行し、次にserdelを使用して削除してから、さらにパラメーターを使用して再試行し、問題の原因を突き止めます(ブルートフォースアプローチ)。

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

2
pcm

私が見つけた最も簡単な方法:


PASSWD="mySeCr3t-default-pa55" 
echo ${PASSWD} | passwd --stdin username_here
1
MelBurslan