• Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法

    公開日:2017年09月04日 最終更新日:2023年02月01日

    Linuxの入門として、ユーザーの新規作成、変更、削除をする方法を解説します。
    Linuxの環境を構築したいという方は、Virtual Boxを使った方法を以下の記事で紹介していますので、是非参考にしてください。

    【関連記事】CentOSのダウンロードとVirtual Boxへのインストール手順を解説

    プロエンジニアの無料会員登録はこちら
    プロエンジニアの無料会員登録はこちら

    1.Linuxを利用するユーザーは、ユーザーアカウントで管理される

    普段、私たちが利用しているパソコンには、WindowsなどのPC用のOSが搭載されています。
    個人用PCでは、基本的には一人1台として割り当てられていることがほとんどです。
    一方、サーバー用のOSとして利用することの多いLinuxでは、複数人で共有して同時にシステムを利用することができる、マルチユーザーシステムとなっています。

    Linuxを利用するユーザーは、ユーザーアカウントとして管理されており、ユーザー毎に固有のユーザー番号(UID)が振られています。

    また、ユーザーは1以上のグループに必ず所属する必要があります。グループについては以下の記事で解説していますので、そちらを参考にしてください。

    【関連記事】Linuxグループの管理 グループを作成・変更・削除・確認する方法

    プロエンジニアの無料会員登録はこちら

    2.ユーザーの種類は全部で3種類

    Linuxのユーザーは、以下の3種類に分けられています。

    ・管理者ユーザー(root)
    ・システムユーザー
    ・一般ユーザー

    ① 管理者ユーザー(root)

    システム全体に対して全ての権限を持っている、管理者権限ユーザーです。
    Windowsの場合のadministrator権限に相当します。ユーザー番号(UID)は0で固定されており、ログインした際のプロンプトは「#」で表示されます。

    ② システムユーザー

    システム管理用のユーザーで、通常のログイン・ログアウトには使用しません。
    システムの内部でプログラムなどを実行するために使われる特別なユーザーのことを指します。

    ③ 一般ユーザー

    システムを通常利用するためのユーザーです。
    個別のユーザー名とパスワードを使ってログイン・ログアウトすることで利用できます。
    CentOS7では、一般ユーザーのユーザー番号(UID)は1000以降の連番で付与され、ログインした際のプロンプトは「$」で表示されます。

    3.ユーザーの新規作成方法

    ユーザーの作成は、rootユーザーで行います。

    rootユーザーは、全権限を持つユーザーのため、実行する処理によっては、システム全体に影響を及ぼす可能性があります。
    したがって、通常の業務は一般ユーザーで行うことになりますが、ユーザーを作成するためには、rootユーザーでログインをしておく必要があります。

    一度ログイン中の一般ユーザーからログアウトして、再びrootとしてログインし直す方法のほか、一般ユーザーとしてログインしたまま、suコマンドを使ってrootユーザーにログインする方法もあります。

    3.1 rootユーザーでログイン

    一般ユーザーとしてログインした状態から、rootユーザーに切り替える方法として、suコマンドがあります。
    「-(ハイフン)」の有無によって処理環境が変わりますので、注意が必要です。

    コマンド 概要
    su [-] [ユーザー名] ログインユーザーを[ユーザー名]に切り替える
    ユーザー名を省略した場合はrootユーザーとして切り替える

    ・「-」ありの場合
      rootユーザーとして直接ログインした場合と同様の処理環境が提供される
    ・「-」なしの場合
      切り替え前のユーザーの環境を維持したまま、ユーザーだけをrootユーザーに切り替える

    (例)suコマンド「-」なし、「-」ありで、それぞれユーザー切り替えをした場合
    pwdコマンドを実行してカレントディレクトリを表示しています。

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    「-」なしの場合はカレントディレクトリが同様(/home/proengineer)で、ログインユーザのみがrootに変更(プロンプトが$から#に変更)されています。

    「-」ありの場合はカレントディレクトリが/home/proengineerから、/rootに変わっており、ユーザーの作業環境自体が変更されていることがわかります。

    3.2 ユーザーの新規作成 useraddコマンド

    rootユーザとしてログインしたら、ユーザーを作成していきます。
    ユーザーの作成は、useraddコマンドを使用します。

    コマンド 概要
    useradd [オプション][ユーザー名] [ユーザー名]のユーザーを作成する
    useraddのオプション 概要
    -c コメント コメントの指定
    -d ホームディレクトリのパス ホームディレクトリを指定
    -e 失効日 アカウントの失効日を指定
    -f 日数 アカウント失効後にアカウントが使えなくなるまでの日数
    日数はyyyy-mm-ddで指定する
    -g グループID 主グループを指定(1つのみ)
    -m ユーザーのホームディレクトリを作成する
    -G グループID サブグループを指定
    カンマ区切りで複数指定することが可能
    -p パスワード パスワードをcrypt関数で暗号化されたものと見なして設定する
    -s シェルのパス ログインシェルの指定
    -u ユーザーID ユーザー固有に振られるユーザー番号(uid)を指定

    (例)「testuser1」というユーザーを作成
    idコマンドを実行し、1001番のユーザーIDでユーザーが作成されたことを確認しています。

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    3.3 パスワードの設定 passwdコマンド

    useraddだけでは、パスワードが設定されていませんので、ユーザーアカウントとしてログインできない状態です。
    passwdコマンドを使って、パスワードを設定します。

    コマンド 概要
    passwd [オプション][ユーザー名] [ユーザー名]のパスワードを設定する
    passwdのオプション 概要
    -d パスワードを無効にする
    -i 日数 パスワードの有効期限が切れてから使用不可になるまでの日数を設定する
    -l ユーザーのアカウントをロックする
    -u ユーザーのアカウントロックを解除する
    -w 日数 パスワードの有効期限が切れる何日前から警告を表示するかを設定する
    -x 日数 パスワードの有効日数を設定する

    useraddコマンドのpオプションを使って、ユーザー作成時にパスワードも合わせて設定することも可能ですが、pオプションの場合、crypt関数で暗号化した値である必要があるので、設定が困難です。
    パスワードは、passwdコマンドを使って設定するのが一般的です。

    パスワードは、rootユーザで変更します。
    他者からは推測されにくい6文字以上を設定してください。パスワードは2回入力しますが、画面には表示されませんので、忘れないようご注意ください。

    rootユーザは全てのユーザーアカウントのパスワードを変更することができます。
    一般ユーザでもpasswdコマンドは使えますが、その場合は自分のアカウントのパスワードのみの変更が可能です。

    (例)testuser1のパスワードをrootユーザーで設定する

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    3.4 rootユーザーからログアウト

    rootユーザーはシステム全体における全権限を持つ強力なユーザーですので、rootユーザーでの作業が終わったら、必ずログアウトをしておきます。

    useraddコマンド、passwdコマンドでユーザーを作成したら、exitコマンドでrootユーザーからログアウトします。

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    exitコマンドでrootユーザーから抜けることで、プロンプトが#から$に変わっているのがわかります。

    3.5 ユーザー情報ファイルを確認する catコマンド

    useraddコマンドで追加されたユーザーは、/etc/passwdファイルに情報が書き込まれます。作成したユーザーがpasswdファイルに追加されたかを、catコマンドで確認します。

    Linuxのetcディレクトリには、システムの設定ファイルが格納されています。

    (例)catコマンドを実行し、/etc/passwdファイルを確認

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    ファイルの最後に「testuser1」の一行が追加されていることが確認できました。
    以上で、ユーザーの作成は完了です。

    ログイン画面に作成したユーザーアカウントが表示されるようになります。

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    4.ユーザーの変更 usermodコマンド

    ユーザー情報の変更を行うコマンドは、usermodコマンドです。rootユーザーにログインして行います。
    ホームディレクトリ、所属グループ、ログイン名などの変更が可能です。

    コマンド 概要
    usermod [オプション] [ユーザー名] [ユーザー名]のユーザー情報を変更する
    usermodのオプション 概要
    -c コメント コメントを変更する
    -d ホームディレクトリのパス ホームディレクトリを変更する
    -g グループID 主グループを変更する
    -G グループID サブグループを変更する
    複数指定が可能
    -l [新ユーザー名] ユーザー名を[ユーザー名]から[新ユーザー名]に変更する
    ユーザー名のみの変更であり、その他の情報は変更しない
    -s シェルのパス ログインシェルを変更する

    (例)「testuser1」のユーザー名を「testuser2」に変更
    lsコマンド(ls /home) でホームディレクトリの一覧を表示しています。

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    lオプションでログインのユーザー名をtestuser2に変更しましたが、-lオプションはユーザー名のみの変更となっています。
    lオプションでユーザー名を変更した場合でも、ユーザー名に紐づくホームディレクトリ名は変更されず、testuser1のままとなっていますのでご注意ください。
    ユーザー名をホームディレクトリごと変更したい場合は、新たにユーザーを作成し直す方が良いでしょう。

    ログイン画面にて、ユーザー名がtestuser2に変更されているのが確認できます。

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    4.1 ユーザーのグループを変更 usermodコマンドのオプション-G

    ユーザーを作成し、グループに所属させるには、usermodコマンドを使います。
    サブグループに所属させるためのオプションとして、-Gオプションがありますが、このオプションを使用する際は注意が必要です。

    ・-Gオプション

    ユーザーのサブグループを変更する
    既に設定済みのサブグループがある場合は上書きされる
    (既存のサブグループの設定が消える)

    【例】ユーザーtestuser1をサブグループsubgroup2に所属させる
    ※参考としてgroupsコマンドでユーザーが所属しているグループを表示しています。

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    -Gオプションは、既存の設定を上書きしてしまうので、もし他のサブグループが既に設定されている場合、それらを全て消してしまいます。
    上記の例では、ユーザーtestuser1が所属する主グループはtestuser1であり、サブグループとして既にsubgroup1に所属しています。

    subgroup2にも追加で所属させるために、usermod -Gを利用してしまうと、subgroup1の設定が上書きされています。
    -Gコマンドは追加ではなく、指定したsubgroup2の所属に変更されることがわかります。

    4.2 ユーザーをグループに追加 usermodコマンドのオプション-aG

    ユーザーのサブグループを変更ではなく追加したい場合は、-Gオプションの際に、既存のサブグループも含めて、所属する全てのサブグループをカンマ区切りで記述する必要があります。
    しかし、サブグループ数が多い場合などは手間がかかるだけでなく、スペルミス等も心配になります。

    そこで、aを含めた-aGオプションについてご説明します。

    ・-aGオプション

    ユーザーのサブグループを追加する
    既に設定済みのサブグループに影響はない
    (既存の設定は残したまま)

    (例)ユーザーtestuser1をサブグループsubgroup2に追加する
    ※参考としてgroupsコマンドでユーザーが所属しているグループを表示しています。

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    上記の例では、既にsubgroup1に所属している状態から、-aGオプションによって、subgroup2のみを指定するだけで、ユーザーのサブグループを増やすことができました。

    -aGオプションの場合は、既存の設定はそのままで、サブグループを追加することができます。

    5.ユーザーの削除 userdelコマンド

    ユーザーを削除する場合は、userdelコマンドを使用します。rootユーザーでログインして行います。

    コマンド 概要
    userdel [オプション] [ユーザー名] [ユーザー名]のユーザーを削除する
    userdelのオプション 概要
    -r ホームディレクトリ毎ユーザーを削除する

    オプションrを付けずに、userdelのみで実行すると、ユーザーは削除されますが、ホームディレクトリなどは残りますのでご注意ください。
    ホームディレクトリごと削除を行いたい場合は、オプションrを忘れずにつけます。

    (例)「testuser1」をrオプション付きで削除
    lsコマンド(ls /home) でホームディレクトリの一覧を表示しています。ホームディレクトリも同時に削除されているのがわかります。

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア

    ログイン画面からもtestuser1が削除されました。
    これでユーザーの削除は完了です。

    Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法フリーランスエンジニア案件情報 | プロエンジニア
    月額単価40万円〜80万円
    勤務地 東京都 港区
    月額単価70万円〜80万円
    勤務地 東京都 千代田区
    月額単価70万円〜
    勤務地 東京都 新宿区
    月額単価80万円〜
    勤務地 東京都

    フリーランスの方でこのようなお悩みありませんか?

    • 定期的に案件を紹介してほしい
    • 完全フルリモートワークや、週1出勤など、働き方を選びたい
    • 単価交渉など営業周りが苦手なので、誰かに任せたい

    プロエンジニアにお任せください!

    プロエンジニアはほとんどEND直案件!高額単価案件ならお任せください。
    完全フルリモートや、週1出勤など、希望に合わせた働き方ができる案件を多数ご用意しています。
    単価や契約交渉などは弊社キャリアコンサルタントに全てお任せください。

    無料登録して、あなたの希望に合った案件をチェック!

    簡単60秒!無料登録はこちらから

    おすすめ記事

  • ピックアップ

    フリーランス

    【Linux】インフラエンジニア★サブスクリプション型(従量課金制)管理システムの構築

    サブスクリプション型(従量課金制)管理システムのサーバー設計・構築を行って頂きます。 主な作業内...

    月額単価:40万円〜80万円

    フリーランス

    【Linux/Windows】インフラエンジニア★ISPインフラ支援

    某インターネットプロバイダー (ISP) のサービス提供用システム基盤に関する運用保守業務とインフラ設計...

    月額単価:70万円〜80万円

    フリーランス

    【Linux/Windows Server】インフラエンジニア★某独立行政法人向けシステム運用・保守

    ・オンプレミスで構成3システムの運用・保守 ・顧客からの問い合わせ対応 ・Windows Server 7割、Linu...

    月額単価:70万円〜

    フリーランス

    【Linux】インフラエンジニア★Webサイトのインフラ構築・運用サポート

    大規模Webサイトのインフラ構築・運用保守と担当していただきます。 Linuxサーバの構築、一般的な保守...

    月額単価:80万円〜

SCROLL TOP