Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法 | サービス | プロエンジニア

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

    • このページをはてなブックマークに追加

    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コマンドを実行してカレントディレクトリを表示しています。

    「-」なしの場合はカレントディレクトリが同様(/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でユーザーが作成されたことを確認しています。

    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ユーザーで設定する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ・-Gオプション

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

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

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

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

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

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

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

    ・-aGオプション

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

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

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

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

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

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

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

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

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

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

    • このページをはてなブックマークに追加

    おすすめ記事

  • OCTPASS

    ピックアップ

    フリーランス

    【Shellscript】サーバーエンジニア★メール配信システム運用ツール開発

    月額単価 :70万円〜

    大規模メール配信システムにおいて 主に以下のような業務をご担当頂きます。 ・運用業務 ・定型作...

    フリーランス

    【Linux/AWS】インフラエンジニア★入札情報サービスリプレイス

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

    官公庁・自治体等の入札・落札情報を探せるサービスの リプレイスプロジェクトをご担当いただきます。 ...

    フリーランス

    【Linux】インフラエンジニア★大手ディスカウントストア向けインフラ構築

    全国に展開している大手ディスカウントストアで用いられる サービスに関するインフラの設計、構築に携...

    フリーランス

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

    大規模Webサイトのインフラ構築・運用保守サポート および社内システムサポート、 Linuxサーバの構築...

    フリーランス

    【Linux】インフラエンジニア★ファイルストレージ(ownCloud)の大型導入

    月額単価 :70万円〜

    ownCloudというファイルストレージの大型導入案件を ご担当いただきます。