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

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 スクリプトの出力

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe

関連記事 - Bash Command