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 コマンドを実行した後、$? を使用して結果を確認します。 値を入力して、適切なメッセージをユーザーに表示します。
出力:
