Linux ユーザー管理 · 4 min read · Dec 15, 2025

テキストファイルからLinux OSにユーザーを追加する方法

テキストファイルからLinux OSにユーザーを追加する方法

このチュートリアルは、テキストファイルからユーザーを追加、削除、確認するためのbashスクリプトについてです。また、ユーザーを手動で追加、削除、変更することもできます。このスクリプトは、テキストファイルからユーザーの情報を取得することによって、Linux OSにユーザーを追加、削除、および確認するために使用できます。また、このスクリプトは手動でユーザーを追加、削除、または確認することもできます。これらの機能を1つのスクリプトファイルにまとめました。テキストファイルは管理者によって指定できます。

:-) !!!スクリプトは完全にユーザーフレンドリーです!!! :-)

スクリプトはこのチュートリアルの最後にあります。

スクリプトの開始

スクリプトを開始すると、次のようなメニューが表示されます:

メニュー

  1. ユーザーを追加

  2. ユーザーを確認

  3. ユーザーを削除

4. 終了

1. ユーザーを追加

メニューからオプション

1. ユーザーを追加

を選択し、キーボードから

“1”

を押します。

スクリプトは、ユーザーがrootである必要があることを確認します。rootUIDはゼロ(0)です。最初に、現在のユーザーのUIDをゼロ(0)と比較します。もしUIDがrootのUIDと一致しない場合、次のメッセージが表示されます:

**このスクリプトを実行するにはrootユーザーである必要があります!

そして、もし

UID

がrootのUIDと一致する場合、次のメッセージが表示され、スクリプトが実行されます:

*身分確認済み_あなたはRootです*

現在のユーザーのUIDを確認するには、ターミナルで次のコマンドを入力します:

echo $UID

ユーザーがrootであれば、1. ユーザーを追加機能が実行されます。

スクリプトは、ユーザーに手動でユーザーを追加するか、スクリプトがテキストファイルからユーザーの情報を取得するかを尋ねます。そのために、次のメニューが表示されます:

#########################################

“モードを選択してください!!!

  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. ユーザーを確認

メニューから:

    ### メニュー ###
  1. ユーザーを追加
  2. ユーザーを確認
  3. ユーザーを削除
  4. 終了

ユーザーがオプション2. ユーザーを確認を選択すると、別のメニューが表示されます:

#################################

モードを選択してください!!!

1. システムのすべてのユーザーを確認
  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. ユーザーを削除

メニューから:

メニュー

  1. ユーザーを追加

  2. ユーザーを確認

  3. ユーザーを削除

4. 終了

ユーザーがオプション3. ユーザーを削除を選択すると、ユーザーがrootとして確認される必要があります。ユーザーがrootとして正常に確認されると、別のメニューが表示されます:

##############################################

モードを選択してください!!!

  1. 特定のユーザーを削除

  2. テキストファイルに指定されたすべてのユーザーを削除
    ##############################################

上記のメニューから、ユーザーがオプション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]

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。