Linuxを使用する上で、ユーザーとグループについてよく理解しておく必要があります。
なぜなら、Linux上のファイルやフォルダ、実行可能なプログラムなどのアクセス制御はユーザーやグループを使って行われるからです。
本記事ではLinuxの基本となるユーザーの種類や管理の仕方、グループの管理の仕方について解説します。
Linux初心者の方向は、本記事を参考にLinuxを活用してください。
他にもLinux初心者の方向けに、基本を解説した記事をご用意しておりますので、そちらも参考にしてください。
2022.08.18
Linuxとは。特徴やメリットなどを初心者向けに解説
コンピュータを動かすために欠かせないOS(オペレーティングシステム)。代表的なOSにWindowsやMac OSがあり、これらをご存...
2022.11.03
Linuxでできること5選。初心者向けに具体例を交えて解説
Linuxは世界中で使われているOSです。しかし、初めてLinuxという単語を聞く人や、LinuxがOSであることを知っているものの...
LinuxをVPSで利用するなら
ミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す
目次
ユーザーとは
ユーザーの種類
Linuxで使用するユーザーは、大きく分けて3種類あります。
- 一般ユーザー
- rootユーザー
- システムユーザー
一般ユーザーは、決められた権限の中で利用できる一般的なユーザーです。
それに対しrootユーザーはスーパーユーザーとも呼ばれ、全ての権限を持っているシステム管理者向けのユーザーです。
rootユーザーはシステムに対してなんでもできてしまうため、操作を誤ってしまうと意図せぬコマンドを実行したり、重要なファイルを削除したりするといった危険性があります。
そのため、通常rootユーザーは必要な場合のみ使用します。
システムユーザーは、アプリケーションや常時稼働するサービス用に作成されるユーザーです。
FTPサーバー用の「ftp」ユーザーや、Webサーバー用の「www」ユーザーなどが該当します。
ユーザーの切り替え(suコマンド)
通常では、一般ユーザーでログインし、管理者権限が必要な場合のみrootユーザーに切り替えて作業を行います。
この、ユーザーの切り替えに使用するコマンドが「su」です。
su |
以下の例では、一般ユーザー「testuser」からsuコマンドを使って、rootユーザーに切り替えています。
rootユーザーに一時的に切り替えて作業を行い、終了したら元の一般ユーザーに戻ります。
なお、suの後に「ー」(ハイフン)を付けることで、そのユーザーがログイン時に読み込む設定ファイルを読み込んだうえでユーザーの切り替えを行うことができます。
$ su – |
以下の例では、「su -」コマンドでrootユーザーに切り替えています。
suコマンドでは、切り替えた直後のカレントディレクトリは「/home/testuser」でしたが、ハイフンをつけるとカレントディレクトリがrootユーザーのホームディレクトリになっています。
これは、rootユーザーの設定ファイルを読み込んでいるためです。
root権限でコマンドを実行(sudoコマンド)
「rootユーザーに切り替える」のではなく「root権限が必要なコマンドを実行できるようにしたい」という場合は、sudoコマンドを使用します。
使い方は、実行したいコマンドの先頭に「sudo」を付けるだけです。
sudo [管理者権限が必要なコマンド] [オプション] |
Ubuntuでsudoコマンドを使用できるようにするには、対象のユーザーを「sudo」グループに追加します。
以下のコマンドでは「testuser」をsudoグループに追加しています。
※rootユーザーで実行
# usermod -aG sudo testuser
sudoコマンドを使うことで一般ユーザーでも管理者権限が必要なコマンドを実行できるようになります。
ユーザー情報を確認する
すでに作成済みのユーザーを確認するには、「/etc/passwd」ファイルを確認します。
# cat /etc/passwd |
/etc/passwdには、ユーザーIDや、ユーザーが所属するグループ、ホームディレクトリなどが表示されます。
/etc/passwdの内容は、「:」(コロン)で区切られたフィールドで定義されています。
内容は以下の通りです。
第1フィールド | ユーザー名 |
第2フィールド | パスワード (シャドウパスワード利用時は「x」と記載) |
第3フィールド | ユーザーID |
第4フィールド | グループID |
第5フィールド | コメント欄 |
第6フィールド | ホームディレクトリ |
第7フィールド | ログインシェル |
ユーザーの管理
ユーザーを管理するためのコマンドは以下のとおりです。
「adduser」と「useradd」はどちらもユーザー作成のコマンドですが、「useradd」では/home/配下にユーザーディレクトリを作成しないので、注意しましょう。
コマンド | 説明 |
---|---|
id | uid(ユーザーID)、ユーザー名、gid(グループID)、groups(サブグループ名)を表示 |
adduser | ユーザーの作成 ※/home/配下にディレクトリを作成する |
useradd | ユーザーの作成 ※/home/配下にディレクトリを作成しない |
usermod | ユーザーの設定変更 |
userdel | ユーザーの削除 |
passwd | ユーザーのパスワード設定変更 |
グループとは
グループの種類
Linuxはマルチユーザー対応OSであり、複数の人が同時に接続して使用することが可能です。
そのため、誰でも自由にファイルやディレクトリが使われることがないよう、アクセス制御を設定できます。
しかし、ユーザー一人ひとりにアクセス制御を設定するのは大変です。
グループは、ユーザーをまとめてグルーピングし、アクセス制御を設定できる機能です。
グループは、「メイングループ」「サブグループ」の2種類があります。
メイングループはユーザー一人に対して必ず1つ割り当てられます。
つまり、ユーザーは必ずいずれかのグループに所属しなければなりません。
一般的に、ユーザーはユーザー名と同名のグループに所属しています。
例えば、rootユーザーのメイングループは「root」です。
サブグループは、メイン以外に所属させたいグループを設定できます。
ユーザーを複数のグループに含めたい場合は、サブグループに登録します。
すでにあるグループを確認したい場合は、「/etc/group」の内容を参照します。
# cat /etc/group |
/etc/groupの内容は、「:」(コロン)で区切られたフィールドで定義されています。
内容は以下のとおりです。
第1フィールド | グループ名 |
第2フィールド | パスワード (シャドウパスワード利用時は「x」と記載) |
第3フィールド | グループID |
第4フィールド | グループに所属するユーザー名 |
グループの管理
グループを管理するためのコマンドは以下のとおりです。
コマンド | 説明 |
---|---|
groupadd | グループの作成 |
groupmod | グループの設定変更 |
groupdel | グループの削除 |
usermod | グループにユーザーを追加・解除 |
ユーザーをグループに追加・解除するコマンドは、「ユーザーの設定変更」を行うusermodコマンドを使用します。
例えば、先ほどの「sudoグループにユーザーを追加するコマンド」でも、usermodコマンドを使用しています。
※rootユーザーで実行
# usermod -aG sudo testuser
まとめ
本記事ではLinuxのユーザーおよびグループについて解説しました。
ユーザーとグループはLinuxのアクセス制御を行うための重要な仕組みなので、管理方法を理解しておきましょう。
特に、Webサーバーやデータベースサーバーを構築する場合、専用のユーザーやグループが使用されます。
その際、本記事で解説したユーザーやグループの確認や管理の方法を参考に、適切に対処できるようにしてください。
LinuxのVPSならミライサーバー
ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。
ミライサーバーのVPSでは、高速処理が可能なSSDを全プランに搭載しています。
OSは、UbuntuやDebian、AlmaLinuxなどの豊富なラインアップから選択することができます。
2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。