Linux ユーザー管理 · 4 min read · Dec 15, 2025
テキストファイルからLinux OSにユーザーを追加する方法
テキストファイルからLinux OSにユーザーを追加する方法
このチュートリアルは、テキストファイルからユーザーを追加、削除、確認するためのbashスクリプトについてです。また、ユーザーを手動で追加、削除、変更することもできます。このスクリプトは、テキストファイルからユーザーの情報を取得することによって、Linux OSにユーザーを追加、削除、および確認するために使用できます。また、このスクリプトは手動でユーザーを追加、削除、または確認することもできます。これらの機能を1つのスクリプトファイルにまとめました。テキストファイルは管理者によって指定できます。
:-) !!!スクリプトは完全にユーザーフレンドリーです!!! :-)
スクリプトはこのチュートリアルの最後にあります。
スクリプトの開始
スクリプトを開始すると、次のようなメニューが表示されます:
メニュー
ユーザーを追加
ユーザーを確認
ユーザーを削除
4. 終了1. ユーザーを追加
メニューからオプション
1. ユーザーを追加
を選択し、キーボードから
“1”
を押します。
スクリプトは、ユーザーがrootである必要があることを確認します。rootのUIDはゼロ(0)です。最初に、現在のユーザーのUIDをゼロ(0)と比較します。もしUIDがrootのUIDと一致しない場合、次のメッセージが表示されます:
**このスクリプトを実行するにはrootユーザーである必要があります!そして、もし
UID
がrootのUIDと一致する場合、次のメッセージが表示され、スクリプトが実行されます:
*身分確認済み_あなたはRootです*
現在のユーザーのUIDを確認するには、ターミナルで次のコマンドを入力します:
echo $UIDユーザーがrootであれば、1. ユーザーを追加機能が実行されます。
スクリプトは、ユーザーに手動でユーザーを追加するか、スクリプトがテキストファイルからユーザーの情報を取得するかを尋ねます。そのために、次のメニューが表示されます:
#########################################
“モードを選択してください!!!
- ユーザーを手動で追加
2. テキストファイルから自動的にユーザーを読み込む###########################################
ユーザーが1. ユーザーを手動で追加を選択した場合、スクリプトはユーザーのユーザー名、グループ、およびパスワードを入力するように促します。ユーザー名とグループには次のコマンドを使用します:
read usr_name read usr_group上記の情報を使用して、次のコマンドでユーザーを追加します:
useradd -g $usr_group -m $usr_nameパスワードには次のコマンドを使用します:
passwd $usr_nameユーザーがオプション2. テキストファイルから自動的にユーザーを読み込むを選択した場合、スクリプトはテキストファイルを見つけて存在を確認し、テキストファイルからユーザー名、グループ、パスワードの情報を読み取ります。
スクリプトは、テキストファイルが存在するべき現在の作業ディレクトリをユーザーに表示します。次のコマンドを使用します:
echo $(pwd)/users.txt
スクリプトは、上記のテキストファイルのパスが正しいか、手動でファイルパスを入力するかを尋ねます。次のメッセージがユーザーに表示されます:
上記のデフォルトパスを使用しますか? はい=1 & いいえ=2ユーザーが「はい」のために1を押すと、スクリプトは表示されたパスからテキストファイルを読み込みます。次のコマンドを使用します:
Path=$($pwd)users.txtユーザーが「いいえ」のために2を押すと、スクリプトはユーザーにテキストファイルの正しいパスを入力するように求め、次のコマンドを使用してファイルパスを読み取ります:
read Pathテキストファイルのパスは変数“Path”に保存されます。ファイルの存在を確認するために次のコマンドが使用されます:
if [ -e $Path ];次のコマンドを使用して、テキストファイルからユーザー名を抽出します:
Username=`grep "Username00$num" $Path | cut -f2 -d:`次のコマンドを使用して、テキストファイルからグループを抽出します:
Group=`grep "Group" $Path |cut -f2 -d:`次のコマンドを使用して、テキストファイルからパスワードを抽出します:
Password=`grep "Password" $Path | cut -f2 -d:`スクリプトは、ユーザーに関する情報を含む変数を使用して、次のコマンドでLinux OSに追加します:
グループを追加するには、次のコマンドを使用します:
groupadd $Groupユーザーをグループに追加するには、次のコマンドを使用します:
useradd -g $Group -m $Usernameすべてのユーザーのパスワードを設定するには、次のコマンドを使用します:
echo $Password | /usr/bin/passwd --stdin $Usernameパスワードは、すべてのユーザーに同じパスワードを含む変数で、テキストファイルから抽出されます。
2. ユーザーを確認
メニューから:
### メニュー ###- ユーザーを追加
- ユーザーを確認
- ユーザーを削除
- 終了
ユーザーがオプション2. ユーザーを確認を選択すると、別のメニューが表示されます:
#################################
モードを選択してください!!!
1. システムのすべてのユーザーを確認- テキストファイルのすべてのユーザーを確認
#################################
上記のメニューから、ユーザーがオプション1. システムのすべてのユーザーを確認を選択すると、システムのすべてのユーザーがユーザーに表示されます。この目的のために次のコマンドを使用しました:
cat /etc/passwd |grep bashこのコマンドの結果は、私の場合、次のbashユーザーを返します:
root:x:0:0:root:/root:/bin/bash
lucky:x:501:501:Lucky:/home/lucky:/bin/bash
ユーザーがオプション2. テキストファイルのすべてのユーザーを確認を選択すると、テキストファイルに記載されているすべてのユーザーが確認されます。私の場合、次のコマンドを使用して、テキストファイルのユーザーがLinux OSに追加されているかどうか、または何人のユーザーがいるかを確認しました。
ユーザーを確認するために、スクリプトで次のコマンドを使用しました:
Path=$($pwd)users.txt
varify=grep "varify" $Path |cut -f2 -d:
cat /etc/passwd | grep $varify
確認は、ユーザー名のユニークな値を含む変数です。
ユーザーの総数を表示するために、次のコマンドを使用しました:
echo -e “ 現在のユーザー数は”
cat /etc/passwd | grep $varify |wc -l;
echo “テキストファイルから追加されたユーザー”
上記のコマンドの結果は、私の場合次の通りです:
fa05btn001:x:502:502::/home/fa05btn001:/bin/bash
fa05btn002:x:503:502::/home/fa05btn002:/bin/bash
fa05btn003:x:504:502::/home/fa05btn003:/bin/bash
fa05btn004:x:505:502::/home/fa05btn004:/bin/bash
fa05btn005:x:506:502::/home/fa05btn005:/bin/bash
fa05btn006:x:507:502::/home/fa05btn006:/bin/bash
fa05btn007:x:508:502::/home/fa05btn007:/bin/bash
fa05btn008:x:509:502::/home/fa05btn008:/bin/bash
現在のユーザー数は 8 テキストファイルから追加されたユーザー
3. ユーザーを削除
メニューから:
メニュー
ユーザーを追加
ユーザーを確認
ユーザーを削除
4. 終了ユーザーがオプション3. ユーザーを削除を選択すると、ユーザーがrootとして確認される必要があります。ユーザーがrootとして正常に確認されると、別のメニューが表示されます:
##############################################
モードを選択してください!!!
特定のユーザーを削除
テキストファイルに指定されたすべてのユーザーを削除
##############################################
上記のメニューから、ユーザーがオプション1. 特定のユーザーを削除を選択すると、スクリプトはシステムの現在のユーザーを表示し、削除するユーザーの名前を入力するように求めます。
システムのすべてのユーザーを表示するために、次のコマンドを使用しました:
cat /etc/passwd |grep bash 上記のコマンドは、次の結果を表示します:
現在システムに追加されているユーザーは次のとおりです
root:x:0:0:root:/root:/bin/bash
lucky:x:501:501:Lucky:/home/lucky:/bin/bash
fa05btn001:x:502:502::/home/fa05btn001:/bin/bash
fa05btn002:x:503:502::/home/fa05btn002:/bin/bash
fa05btn003:x:504:502::/home/fa05btn003:/bin/bash
fa05btn004:x:505:502::/home/fa05btn004:/bin/bash
fa05btn005:x:506:502::/home/fa05btn005:/bin/bash
fa05btn006:x:507:502::/home/fa05btn006:/bin/bash
fa05btn007:x:508:502::/home/fa05btn007:/bin/bash
fa05btn008:x:509:502::/home/fa05btn008:/bin/bash
削除したいユーザーの名前を入力してください:ユーザーは削除したいユーザーの名前を入力するように求められ、ユーザーが削除したいユーザーの名前を入力すると、Linux OSは上記のファイルでユーザーを検索し、次のコマンドを使用してユーザーを削除します:
read user_name
userdel -r $user_name
ユーザーがオプション
2. テキストファイルに指定されたすべてのユーザーを削除
を選択すると、スクリプトはそのテキストファイルにリストされたすべてのユーザーを削除します。
次のコマンドは、テキストファイルからユーザー名を抽出します:
Username=`grep "Username00$num" $Path | cut -f2 -d:`次のスクリプトセグメントは、ファイルの最後に移動し、ループを終了します:
if [ $Username == “EOF” ]; then
clear
main
fi
次のコマンドは、テキストファイルにリストされたユーザーを削除します:
userdel -r $Username注意: 私はPCLinuxOSでADDUSER.shスクリプトをテストしましたが、他のLinuxディストリビューションでもうまく動作することを願っています。誰でもコードを変更できますので、他の人と共有してください。
良い時間をお過ごしください。:-)
以下は、Linux OSにユーザーを追加、削除、確認するための完全なスクリプトです。
作成者:USMAN AKRAM (ajaonchat)
#!/bin/bash ############################################################### #このスクリプトは作成されました # # USMAN AKRAM (ajaonchat) # # FA05-BTN-005 # # BTN-6 # ############################################################### add_users() { ROOT_UID=0 #rootユーザーのUIDは0です if [ "$UID" -ne "$ROOT_UID" ]; then echo "このスクリプトを実行するにはrootユーザーである必要があります!**" exit fi echo echo 身分確認済み_あなたはRootです echo echo -e "\n#########################################\n" echo -e "モードを選択してください!!!\n" echo -e "1. ユーザーを手動で追加\n 2. テキストファイルから自動的にユーザーを読み込む\n" echo -e "###########################################" read add_opt case $add_opt in 1) echo -e "ユーザー名を入力してください:" read usr_name echo -e "ユーザーグループを入力してください" read usr_group groupadd $usr_group useradd -g $usr_group -m $usr_name echo -e "ユーザー $usr_name のパスワードを入力してください" passwd $usr_name ;; 2) echo echo "現在の作業ディレクトリは: `pwd`/users.txt" echo echo -e "上記のデフォルトパスを使用しますか? はい=1 & いいえ=2" read yn if [ $yn == 1 ]; then Path=$($pwd)users.txt else echo -n "ファイルへの正しいパスを入力してください(例:/root/folder/filename.txt):" read Path fi if [ -e $Path ]; then #指定されたファイルが存在する場合 Username=lucky num=1 while [ $Username != "EOF" ] do Username=`grep "Username00$num" $Path | cut -f2 -d:` #テキストファイルからユーザー名を抽出 num=$(($num+1)) Password=`grep "Password" $Path | cut -f2 -d:` #テキストファイルからパスワードを抽出 Group=`grep "Group" $Path |cut -f2 -d:` #テキストファイルからグループを抽出 groupadd $Group #システムにユーザーを追加し、パスワードを設定します if [ $Username == "EOF" ]; then clear main fi #システムにユーザーを追加 useradd -g $Group -m $Username #ユーザーのパスワードを追加 echo $Password | /usr/bin/passwd --stdin $Username #ユーザーパスワードが割り当てられます done else #指定されたファイルが存在しない場合 echo -e "\n#############################################" echo -e "\n######ファイルが見つからないか、位置が特定できません!!!!#####" echo -e "\n#############################################" fi;; *) echo -e "間違った選択をしました!!!" esac } varify() { echo -e "#################################" echo -e "モードを選択してください!!!\n" echo -e "1. システムのすべてのユーザーを確認\n 2. テキストファイルのすべてのユーザーを確認\n" echo -e "#################################" read varify_user case $varify_user in 1) cat /etc/passwd |grep bash;; 2) echo echo "現在の作業ディレクトリは: `pwd`/users.txt" echo echo -e "上記のデフォルトパスを使用しますか? はい=1 & いいえ=2" read yn if [ $yn == 1 ]; then Path=$($pwd)users.txt else echo -n "ファイルへの正しいパスを入力してください(例:/root/folder/filename.txt):" read Path fi if [ -e $Path ]; then Path=$($pwd)users.txt varify=`grep "varify" $Path |cut -f2 -d:` cat /etc/passwd | grep $varify echo -e "\n現在のユーザー数は" cat /etc/passwd | grep $varify |wc -l echo "テキストファイルから追加されたユーザー" else #指定されたファイルが存在しない場合 echo -e "\n#############################################" echo -e "\n######ファイルが見つからないか、位置が特定できません!!!!#####" echo -e "\n#############################################" fi ;; *) echo -e "間違った選択" esac } del_users() { #このスクリプトはホームディレクトリからユーザーを削除します!!!! ROOT_UID=0 #rootユーザーのUIDは0です if [ "$UID" -ne "$ROOT_UID" ]; then echo "**このスクリプトを実行するにはrootユーザーである必要があります!**" exit fi echo echo 身分確認済み_あなたはRootです echo echo echo "現在の作業ディレクトリは: `pwd`/students.txt" echo #これは、ユーザーを削除するためのモードを選択するメニューです。特定のユーザーを削除するか、テキストファイルにあるすべてのユーザーを削除するか...??? echo -e "####################################" echo -e "\nモードを選択してください!!!\n 1. 特定のユーザーを削除\n 2. テキストファイルに指定されたすべてのユーザーを削除\n" echo -e "####################################" read del_opt case $del_opt in 1) echo -e "\n\n現在システムに追加されているユーザーは次のとおりです\n" cat /etc/passwd |grep bash echo -e "\n\n 削除したいユーザーの名前を入力してください:" read user_name userdel -r $user_name ;; 2) echo echo "現在の作業ディレクトリは: `pwd`/users.txt" echo echo -e "上記のデフォルトパスを使用しますか? はい=1 & いいえ=2" read yn if [ $yn == 1 ]; then Path=$($pwd)users.txt else echo -n "ファイルへの正しいパスを入力してください(例:/root/folder/filename.txt):" read Path fi if [ -e $Path ]; then #指定されたファイルが存在する場合 num=1 Username=lucky while [ $Username != "EOF" ] do Username=`grep "Username00$num" $Path | cut -f2 -d:` #テキストファイルからユーザー名を抽出 if [ $Username == "EOF" ]; then clear main fi userdel -r $Username num=$(($num+1)) done else #指定されたファイルが存在しない場合 echo -e "\n#############################################" echo -e "\n######ファイルが見つからないか、位置が特定できません!!!!#####" echo -e "\n#############################################" fi ;; *) echo -e "間違った選択" esac } main() { opt=1 while [ $opt -le 4 ] do clear echo -e " ### メニュー ###\n 1. ユーザーを追加\n 2. ユーザーを確認\n 3. ユーザーを削除\n 4. 終了\n" read opt case $opt in 1) add_users ;; 2) varify ;; 3) del_users ;; 4) exit 0 ;; *) echo -e "間違った選択をしました!!!" esac echo -e "\n再度スクリプトを実行しますか はい=1 & いいえ=4." read opt done } main exit 0
これは、私がスクリプトで使用したテキストファイルです
#######################################################
作成者
USMAN AKRAM (LUCKY)
FA05-BTN-005
[email protected]
#######################################################
COMSATS アボタバード学生のアカウント
==============================
ファイル名:users.txt
年:2008
キャンパス:CIIT-ABTD
グループ:btn
##以下は、ホームディレクトリに追加されるユーザーです!!!
Username001:fa05btn001
Username002:fa05btn002
Username003:fa05btn003
Username004:fa05btn004
Username005:fa05btn005
Username006:fa05btn006
Username007:fa05btn007
Username008:fa05btn008
Username009:EOF
#これが最終ユーザーになります
varify:fa05btn
Password:123456
テキストファイルの終わり!!!!作成者:USMAN AKRAM(Lucky)、COMSATS大学アボタバードの学生 [BS(TN)-6] メールアドレス: [email protected]
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。