次のコマンドを使用して、Linuxマシンでユーザーを作成します。
useradd -d /home/dummy -g idiots -m -p 12345689 dummy
ユーザーが作成され、ホームディレクトリも作成されます。
問題は、-p
がcrypto
から返される暗号化されたパスワードを予期しているため、このアカウントを使用してシステムにログインできないことです。
質問:bashスクリプトを使用してユーザーを作成したいのですが、crypto
による暗号化されたパスワードがわかりません。スクリプトを使用してこのユーザーを自動的に作成し、パスワードの問題を回避できるようにするにはどうすればよいですか?
Opensslを使用して、事前に暗号化されたパスワード文字列を生成し、-pオプションを使用してuseraddを実行できます。
echo "P4sSw0rD" | openssl passwd -1 -stdin
$1$Jxmpx1Da$Y8MzBctIyDW8/7pFPbNWD1
-1
はMD5パスワードハッシュを生成するように言っています。塩は自動的に生成されます。
次に使用できます
useradd -d /home/dummy -g idiots -m -p $(echo "P4sSw0rD" | openssl passwd -1 -stdin) dummy
ユーザーを追加します。これをインタラクティブに行うには、パスワードを非表示にします
useradd -d /home/dummy -g idiots -m -p $(read -sp Password: pw ; echo $pw | openssl passwd -1 -stdin) dummy
どうやら 、あなたは使うことができます
echo "password" | passwd dummy --stdin
私はこれを試したことはありません。
または、ユーザーの公開鍵を/home/dummy/.ssh/authorized_keys
とパスワードを完全に忘れてください。これは、セキュリティの面で最適なオプションです。
それが私のやり方です:
# cat user-pw_list
john:p455W0rD
geany:p455W0rD
# cat CreateUsers.sh
#!/bin/bash
#
# filename: CreateUsers.sh
# usage: cat "User:passwd" | $0
#
set -e
# set -x
while read ; do
USER=${REPLY%%:*}
PWD=${REPLY##*:}
# alternative for random passwd, where $RANDOM is a bash function
#PWD=${REPLY%%:*}$RANDOM$RANDOM
echo -e "adding User $USER "
# for disabled users: /usr/sbin/nologin, otherwise /bin/bash
/usr/sbin/useradd -c automaticUser -m -k/dev/null -s /usr/sbin/nologin $USER
echo "$USER:$PWD" | chpasswd --md5 $USER
## also add user to samba:
#echo -e "$PWD\n$PWD" | pdbedit -t -u $USER
done
Bashスクリプトを使用するので、おそらく古き良きnewusers
コマンドが役に立ちますか?次のような形式のテキストファイルから入力を読み取ります。
pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_Shell
そして、そのファイルのパスワードは平文でなければなりません。入力ファイルには、必要な数のユーザーをリストできます。
詳細については、man newusers
を参照してください。