Linux で新しいユーザーを追加する Bash スクリプト
この短い記事は、ユーザーを自動的に追加し、Linux オペレーティング システムにパスワードを割り当てることができる Bash スクリプトの作成に関するものです。 Linux オペレーティング システムでは、useradd
コマンドを使用して新しいユーザーを追加し、パスワードを付与します。
Bash スクリプト useradd
コマンド
ユーザーを追加するための簡単なユーティリティは useradd
です。 Debian の管理者は通常、代わりに adduser
を使用する必要があります。
-D
オプションを指定せずに useradd
コマンドを呼び出すと、コマンド ラインに入力された値とシステムのデフォルト値によって、新しいユーザー アカウントが作成されます。 useradd
コマンドは、システム ファイルを更新し、コマンド ライン オプションに応じて他のタスクを実行する場合があります。
さらに、新しいユーザーのホーム ディレクトリを作成し、初期ファイルをコピーします。
ユーザーを追加する Bash スクリプト
Linux オペレーティング システムでは、新しいユーザーをシステムに追加するには root ユーザーである必要があります。 したがって、スクリプトでは、スクリプトを実行しているユーザーが root ユーザーであるかどうかを最初に検証する必要があります。
その後、ユーザーから入力されたユーザー名とパスワードを取得し、useradd
コマンドを実行できます。 以下のスクリプトを見てみましょう。
バッシュ スクリプト:
#!/bin/bash
if [ $(id -u) -eq 0 ]; then
read -p "Enter your username : " user_name
read -s -p "Enter your password : " pass
egrep "^$user_name" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$user_name exists!"
exit 1
else
epass=$(perl -e 'print crypt($ARGV[0], "pass")' $pass)
useradd -m -p "$epass" "$user_name"
[ $? -eq 0 ] && echo "Successfully added User!" || echo "Sorry! User not added"
fi
else
echo "Sorry! You are not authorized to add users."
exit 2
fi
ユーザーからユーザー名とパスワードを読み取った後、最初に、指定されたユーザー名を持つユーザーが既に存在するかどうか、または egrep
コマンドを使用していないかどうかを検索しました。 ユーザーエントリが /etc/passwd
ファイルにある場合は、そのユーザーが既に存在することを意味します。
そうでない場合は、perl
コマンドを使用してパスワードを暗号化します。 perl
コマンドを実行すると、暗号化されたパスワードが画面に表示されます。
Perl の crypt()
関数は一方向の暗号化アルゴリズムを採用しているため、暗号化されたパスワードを解読することはできません。 ユーザーのパスワード文字列が取得され、salt を使用して暗号化され、コンピューター画面に表示されます。
useradd
コマンドを実行した後、$?
を使用して結果を確認します。 値を入力して、適切なメッセージをユーザーに表示します。
出力: