はじめに
このチャレンジでは、サーバー上でのユーザーの一括追加および削除を自動化する bash スクリプト userctr.sh を作成します。このスクリプトは、操作(add または del)、教師のユーザー名、学生ユーザー名のプレフィックス、および管理する学生の数を指定するためのコマンドライン引数を受け取ります。このタスクは、システム管理に不可欠なシェルスクリプティング、ユーザー管理、および自動化のスキルを向上させます。
このチャレンジでは、サーバー上でのユーザーの一括追加および削除を自動化する bash スクリプト userctr.sh を作成します。このスクリプトは、操作(add または del)、教師のユーザー名、学生ユーザー名のプレフィックス、および管理する学生の数を指定するためのコマンドライン引数を受け取ります。このタスクは、システム管理に不可欠なシェルスクリプティング、ユーザー管理、および自動化のスキルを向上させます。
システム管理者は、教室サーバーに教師と複数の学生ユーザーを効率的に追加する方法を必要としています。手動で各アカウントを作成するのは手間がかかり、エラーが発生しやすいためです。このタスクでは、このプロセスを自動化する bash スクリプト userctr.sh を作成します。スクリプトは、操作タイプ、教師の名前、学生の名前のプレフィックス、および学生の数をパラメータとして受け取ります。
/home/labex/project ディレクトリに userctr.sh という名前の Bash スクリプトを作成します。add と del の 2 つの主要な操作を実装する必要があります。add 操作では、教師ユーザーと指定された数の学生ユーザーを作成します。del 操作では、指定された教師と学生ユーザーを削除します。実行形式: スクリプトは 4 つの引数で実行可能である必要があります。
sh userctr.sh <operation> <teacher_name> <student_prefix> <student_count>
パラメータ検証:
parameter error と表示して終了する必要があります。student_count(4 番目の引数)は、1 から 10 までの整数である必要があります。それ以外の場合は、parameter error と表示して終了する必要があります。student_prefix(3 番目の引数)は、小文字のアルファベットのみで構成されている必要があります。それ以外の場合は、parameter error と表示して終了する必要があります。add 操作の詳細:
****** で区切って表示します(例:stu3:******)。teacher:901231)。/bin/zsh を使用する必要があります。sudo グループに追加する必要があります。del 操作の詳細:
del 操作は、何も出力しないものとします。以下の例は、スクリプトの期待される動作を示しています。
ユーザーの追加: このコマンドは、1 人の教師(teacher)と 6 人の学生(stu1 から stu6)を追加します。
sh userctr.sh add teacher stu 6
出力例:
teacher:901231
stu1:271828
stu2:928172
stu3:******
stu4:384712
stu5:098273
stu6:921098
この出力の stu3 のアスタリスクは、ユーザーが既に存在していたため、新しいパスワードが生成されなかったことを示しています。
ユーザーの削除: このコマンドは、同じユーザーセットを削除します。正常に完了した場合、何も出力されないはずです。
sh userctr.sh del teacher stu 6
useradd や userdel のような root 権限が必要なコマンドの前に sudo を使用します。$# で引数の数を確認します。$1、$2 などを使用してアクセスします。id -u <username> を使用できます。ユーザーが存在しない場合、コマンドはゼロ以外の終了コードを返します。useradd -m -s /bin/zsh <username> を使用します。sudo グループに追加するには、usermod -aG sudo <username> を使用します。userdel -r <username> を使用します。shuf -i 100000-999999 -n 1 を使用できます。for ループが役立ちます:for ((i=1; i<=$student_count; i++))。if [[ "$string" =~ "regex" ]] を使用します。おめでとうございます!ユーザー管理を自動化する bash スクリプトを正常に作成しました。このスクリプトは、ユーザーをバッチで追加および削除し、入力パラメータを検証し、既存のユーザーを処理することができます。これらは、あらゆるシステム管理者にとって不可欠なスキルです。スクリプト内で、条件分岐、ループ、コマンドライン引数、および useradd や userdel のような外部コマンドの使用を練習しました。