Linux で新しいユーザーを追加する Bash スクリプト

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

出力:

useradd コマンドの bash スクリプトの出力

関連記事 - Bash Command