Linuxユーザー権限管理の基礎と実践

※本記事にはプロモーション(広告)を含みます。
Linuxユーザー権限管理の基礎と実践:セキュリティを高める設定手法
Linuxシステムのセキュリティを確保するには、ユーザー権限管理を徹底することが最優先課題です。root権限の乱用を防ぎ、適切なsudo設定を行うことで、不正アクセスやデータ漏洩のリスクを大幅に低減できます。本記事では、Linuxのユーザー権限管理の基礎から実践的な設定方法までを網羅的に解説します。具体的な手順と具体例を交えながら、インフラエンジニアとして必須の知識を身につけましょう。
目次
- はじめに:Linux権限管理の重要性
- 基本概念:Linuxの権限モデルを理解する
- ユーザー管理の実践:作成・削除・権限設定
- グループ管理:複数ユーザーへの権限付与
- 高度な権限管理:ACLとSELinux
- 実践的な設定:セキュアな環境構築
- トラブルシューティング:権限エラーの解決法
- ベストプラクティス:権限管理のチェックリスト
- まとめ:セキュアなLinux環境を構築しよう
- よくある質問(FAQ)
はじめに:Linux権限管理の重要性
Linuxシステムのセキュリティにおいて、ユーザー権限管理は最も重要な要素の一つです。特にインフラ環境では、複数のユーザーが異なる権限でシステムにアクセスするため、適切な権限設定がなければ不正アクセスやデータ改ざんのリスクが高まります。不適切な権限管理は、不正アクセスや情報漏洩といったセキュリティインシデントの主要な原因の一つです。
本記事では、Linuxの権限管理の基礎から実践的な設定方法までを解説します。具体的なコマンド例や設定ファイルの編集方法を交えながら、インフラエンジニアとして必須の知識を身につけましょう。特に、sudoの設定やACL(Access Control List)の活用、SELinuxの基本設定など、実務で即活用できる内容を中心に解説します。
基本概念:Linuxの権限モデルを理解する
Linuxの権限管理は、ファイルやディレクトリに対して「誰が」「何を」「どの程度」できるかを制御する仕組みです。この仕組みを理解することで、セキュアな環境を構築する基礎が築けます。
所有者とグループの仕組み
Linuxでは、ファイルやディレクトリには「所有者(ユーザー)」と「所有グループ(グループ)」が紐づいています。これにより、異なるユーザー間で権限を柔軟に管理できます。
所有者とグループを確認するには、ls -lコマンドを使用します。
ls -l /var/log/syslog出力例:
この出力の各部分の意味は以下の通りです。
| 位置 | 内容 | 説明 |
|---|---|---|
| -rw-r—– | ファイルタイプとパーミッション | 最初の「-」はファイルタイプ(ファイルの場合は「-」、ディレクトリの場合は「d」)。続く「rw-」は所有者の権限、「r–」はグループの権限、「—」はその他ユーザーの権限。 |
| 1 | ハードリンク数 | このファイルへのハードリンクの数を示す。 |
| root | 所有者(ユーザー) | このファイルの所有者はrootユーザー。 |
| adm | 所有グループ | このファイルの所有グループはadmグループ。 |
| 12345 | ファイルサイズ(バイト) | ファイルのサイズを示す。 |
| Jan 1 10:00 | 最終更新日時 | ファイルが最後に更新された日時。 |
| /var/log/syslog | ファイルパス | ファイルのフルパス。 |
所有者とグループを変更するには、chownコマンドとchgrpコマンドを使用します。
sudo chown ユーザー名:グループ名 ファイルパスsudo chgrp グループ名 ファイルパスパーミッションの種類と数値表現
Linuxのパーミッションは、以下の3種類に分類されます。
- 読み取り(Read, r):ファイルの内容を閲覧したり、ディレクトリ内のファイル一覧を表示したりできる。
- 書き込み(Write, w):ファイルの内容を編集したり、ディレクトリに新しいファイルを作成・削除したりできる。
- 実行(Execute, x):ファイルを実行したり、ディレクトリに移動したりできる。
これらのパーミッションは、所有者(User)、所有グループ(Group)、その他ユーザー(Others)の3つのカテゴリに対して設定されます。例えば、以下のようなパーミッションがあります。
chmod u=rwx,g=rx,o=r ファイルパスこのコマンドは、所有者(u)に読み取り・書き込み・実行権限を、所有グループ(g)に読み取り・実行権限を、その他ユーザー(o)に読み取り権限のみを付与します。
パーミッションは数値でも表現できます。各権限には以下の数値が割り当てられています。
- 読み取り(r):4
- 書き込み(w):2
- 実行(x):1
例えば、所有者に読み取り・書き込み・実行(4+2+1=7)、所有グループに読み取り・実行(4+1=5)、その他ユーザーに読み取り(4)を設定する場合は、以下のようにします。
chmod 754 ファイルパスこの数値表現は、chmodコマンドで広く使用されています。
特殊パーミッション(SUID/SGID/sticky bit)
Linuxには、通常のパーミッションに加えて、特殊なパーミッションが存在します。これらは、特定の状況で利便性とセキュリティのバランスを取るために使用されます。
- SUID(Set User ID):所有者の権限でファイルを実行できるようにする。例えば、
/usr/bin/passwdはSUIDが設定されており、一般ユーザーでも自身のパスワードを変更できる。 - SGID(Set Group ID):所有グループの権限でファイルを実行できるようにする。ディレクトリに設定すると、そのディレクトリ内に作成されたファイルの所有グループが、ディレクトリの所有グループと同じになる。
- sticky bit:ディレクトリに設定すると、所有者とrootのみがファイルを削除できるようになる。主に/tmpディレクトリなどで使用される。
これらの特殊パーミッションは、数値表現では所有者・所有グループ・その他ユーザーの前にそれぞれ4(SUID)、2(SGID)、1(sticky bit)を追加して表現します。例えば、SUIDとSGIDを設定する場合はchmod 4755のようにします。
ユーザー管理の実践:作成・削除・権限設定
Linuxのユーザー管理は、システムのセキュリティを確保する上で非常に重要です。適切なユーザーを作成し、不要なユーザーを削除することで、不正アクセスのリスクを低減できます。作成したユーザーにリモートログインさせる場合は、パスワード認証ではなくSSH公開鍵認証の設定を前提にすると安全性が高まります。
useraddコマンドの活用法
useraddコマンドは、新しいユーザーを作成するための基本的なコマンドです。このコマンドを使用することで、ユーザーのホームディレクトリやデフォルトシェル、グループなどを設定できます。
基本的な構文は以下の通りです。
sudo useradd [オプション] ユーザー名よく使用されるオプションは以下の通りです。
| オプション | 説明 |
|---|---|
| -m | ホームディレクトリを作成する。 |
| -d ホームディレクトリパス | ホームディレクトリのパスを指定する。 |
| -s シェルパス | デフォルトシェルを指定する(例: /bin/bash)。 |
| -G グループ名 | セカンダリグループを指定する。 |
| -c コメント | ユーザーのコメント(フルネームなど)を設定する。 |
| -e 有効期限 | アカウントの有効期限を設定する(形式: YYYY-MM-DD)。 |
例えば、以下のコマンドは、ユーザー「taro」を作成し、ホームディレクトリを作成してbashシェルを設定します。
sudo useradd -m -s /bin/bash taro作成されたユーザーには、パスワードを設定する必要があります。パスワードを設定するにはpasswdコマンドを使用します。
sudo passwd taro注意:パスワードは強力なものを設定し、定期的に変更することを推奨します。また、rootユーザーのパスワードは絶対に漏洩しないように注意してください。
usermod・passwdコマンドで権限を制御
usermodコマンドは、既存のユーザーのプロパティを変更するために使用します。例えば、ユーザーのホームディレクトリを変更したり、セカンダリグループを追加したりできます。
基本的な構文は以下の通りです。
sudo usermod [オプション] ユーザー名よく使用されるオプションは以下の通りです。
| オプション | 説明 |
|---|---|
| -aG グループ名 | ユーザーをセカンダリグループに追加する(既存のグループは維持される)。 |
| -d ホームディレクトリパス | ホームディレクトリのパスを変更する。 |
| -e 有効期限 | アカウントの有効期限を設定する(形式: YYYY-MM-DD)。 |
| -L | ユーザーのパスワードをロックする(一時的に無効化)。 |
| -U | ロックされたユーザーのパスワードをアンロックする。 |
例えば、ユーザー「taro」を「developers」グループに追加するには、以下のようにします。
sudo usermod -aG developers taropasswdコマンドは、ユーザーのパスワードを管理するためのコマンドです。主なオプションは以下の通りです。
| オプション | 説明 |
|---|---|
| ユーザー名 | 指定したユーザーのパスワードを変更する。 |
| -l | ユーザーのパスワードをロックする。 |
| -u | ロックされたユーザーのパスワードをアンロックする。 |
| -d | ユーザーのパスワードを削除する(パスワードなしでログイン可能にする)。 |
| -e | ユーザーのパスワードを期限切れにする(次回ログイン時にパスワード変更を強制)。 |
例えば、ユーザー「taro」のパスワードをロックするには、以下のようにします。
sudo passwd -l tarosudoersファイルで権限を厳格化
sudoは、一般ユーザーが管理者権限を必要とするコマンドを実行できるようにするコマンドです。sudoを安全に使用するためには、/etc/sudoersファイルを適切に設定することが重要です。
/etc/sudoersファイルを編集するには、visudoコマンドを使用します。このコマンドは、構文エラーを防ぐために専用のエディタでファイルを編集します。
sudo visudo/etc/sudoersファイルの主な設定項目は以下の通りです。
| 設定項目 | 説明 |
|---|---|
| root ALL=(ALL:ALL) ALL | rootユーザーに対して、あらゆるコマンドをあらゆるユーザー・グループとして実行する権限を付与する。 |
| ユーザー名 ホスト=(実行可能ユーザー:実行可能グループ) コマンド | 特定のユーザーに対して、特定のコマンドを特定のユーザー・グループとして実行する権限を付与する。 |
| %グループ名 ホスト=(実行可能ユーザー:実行可能グループ) コマンド | 特定のグループに属するユーザーに対して、特定のコマンドを実行する権限を付与する。 |
| !コマンド | 特定のコマンドの実行を禁止します。 |
例えば、以下の設定は、ユーザー「taro」に対して、aptコマンドのみを実行する権限を付与します。
また、以下の設定は、グループ「developers」に属するユーザーに対して、systemctlコマンドを実行する権限を付与します。
注意:/etc/sudoersファイルを編集する際は、必ずvisudoコマンドを使用してください。直接ファイルを編集すると、構文エラーによりsudoが使用できなくなる可能性があります。
グループ管理:複数ユーザーへの権限付与
Linuxのグループ管理は、複数のユーザーに対して同じ権限を一括で付与するための重要な機能です。グループを適切に管理することで、ユーザー管理の手間を大幅に削減できます。
groupadd・gpasswdでグループを管理
groupaddコマンドは、新しいグループを作成するためのコマンドです。基本的な構文は以下の通りです。
sudo groupadd [オプション] グループ名よく使用されるオプションは以下の通りです。
| オプション | 説明 |
|---|---|
| -g GID | グループIDを指定する。 |
| -r | システムグループとして作成する(GIDが100未満)。 |
例えば、以下のコマンドは、グループ「developers」を作成します。
sudo groupadd developersgpasswdコマンドは、グループのパスワードを設定したり、ユーザーをグループに追加・削除したりするためのコマンドです。基本的な構文は以下の通りです。
sudo gpasswd [オプション] グループ名よく使用されるオプションは以下の通りです。
| オプション | 説明 |
|---|---|
| -a ユーザー名 | ユーザーをグループに追加する。 |
| -d ユーザー名 | ユーザーをグループから削除する。 |
| -M ユーザー名1,ユーザー名2… | 複数のユーザーをグループに追加する。 |
例えば、以下のコマンドは、ユーザー「taro」をグループ「developers」に追加します。
sudo gpasswd -a taro developers注意:グループに追加されたユーザーは、次回ログイン時にグループの権限が反映されます。現在のセッションでグループの権限を即時反映させるには、newgrpコマンドを使用します。
newgrp developersセカンダリグループの活用
Linuxでは、ユーザーは1つのプライマリグループと複数のセカンダリグループに属することができます。セカンダリグループを活用することで、柔軟な権限管理が可能になります。
セカンダリグループを確認するには、groupsコマンドを使用します。
groups taro出力例:
この出力は、ユーザー「taro」がプライマリグループ「taro」とセカンダリグループ「developers」に属していることを示しています。
セカンダリグループを設定するには、usermodコマンドの-Gオプションを使用します。例えば、以下のコマンドは、ユーザー「taro」をセカンダリグループ「admins」に追加します。
sudo usermod -aG admins taro注意:-aGオプションを使用する際は、-a(追加)オプションを必ず指定してください。-aオプションを指定しないと、既存のセカンダリグループがすべて削除されてしまいます。
高度な権限管理:ACLとSELinux
Linuxの権限管理は、基本的な所有者・グループ・パーミッションだけでなく、ACL(Access Control List)やSELinuxなどの高度な機能を活用することで、さらに柔軟かつセキュアな環境を構築できます。
ACL(Access Control List)で柔軟な権限制御
ACLは、ファイルやディレクトリに対して、所有者・グループ・その他ユーザー以外のユーザーやグループに対して個別に権限を設定できる機能です。これにより、より細かい権限管理が可能になります。
ACLを使用するには、setfaclコマンドとgetfaclコマンドを使用します。
ACLを設定するには、以下の構文を使用します。
setfacl -m u:ユーザー名:権限 ファイルパスsetfacl -m g:グループ名:権限 ファイルパス例えば、以下のコマンドは、ユーザー「taro」に対して、/var/wwwディレクトリへの読み取り・書き込み権限を付与します。
sudo setfacl -m u:taro:rw /var/wwwACLを確認するには、getfaclコマンドを使用します。
getfacl /var/www出力例:
file: /var/www
owner: root
group: root
user::rwx
user:taro:rw-
group::r-x
mask::rwx
other::r-x
ACLには、以下のようなオプションがあります。
SELinuxの基本設定とトラブルシューティング
SELinux(Security-Enhanced Linux)は、Linuxシステムのセキュリティを強化するためのモジュールであり、強制アクセス制御(MAC)を実現します。従来の任意アクセス制御(DAC)に加えて、プロセスやファイル、デバイスなどのリソースに対するきめ細かなアクセス制御が可能です。SELinuxを有効にすることで、システムのセキュリティを向上させることができますが、その一方で、正しく設定されていない場合には、アプリケーションやサービスが正常に動作しないことがあります。
SELinuxの基本設定は、/etc/selinux/configファイルで行います。このファイルでは、SELinuxのモード(Enforcing、Permissive、Disabled)を設定できます。EnforcingモードはSELinuxポリシーを強制的に適用するモードで、Permissiveモードはポリシー違反をログに記録するだけで実行を許可するモードです。設定を変更した後は、システムを再起動するか、setenforceコマンドを使用して即座に変更を反映させることができます。
トラブルシューティングを行う際には、まずgetenforceコマンドで現在のSELinuxモードを確認します。次に、audit2allowコマンドを使用して、ログからポリシー違反を分析し、必要なポリシーの調整を行います。また、sealertコマンド(RHEL/CentOSの場合)を使用して、詳細なエラー情報を取得することもできます。これらのツールを活用することで、SELinuxに関する問題を迅速に解決することが可能です。
- SELinuxのモードを一時的に変更する場合は、
setenforce 0(Permissiveモード)やsetenforce 1(Enforcingモード)を使用します。
実践的な設定:セキュアな環境構築
Linuxにおけるセキュアな環境構築では、まずユーザー権限の原則である「最小権限の原則」を徹底することが重要です。管理者権限を必要とする操作は必要最低限に抑え、一般ユーザーには必要な権限のみを付与します。例えば、システム管理を行う際には通常の作業用ユーザーとrootユーザーを分離し、管理タスク時のみ一時的に権限を昇格させる方法が推奨されます。これにより、誤操作や悪意のあるソフトウェアによる被害を最小限に抑えることができます。
次に、ファイルやディレクトリのパーミッション設定を見直すこともセキュリティ強化につながります。特に重要なシステムファイルや設定ファイルについては、所有者やグループ、その他ユーザーのアクセス権を厳格に制限します。例えば、Webサーバーのドキュメントルートディレクトリは、所有者を専用のユーザー(例:www-data)に設定し、他のユーザーからの書き込み権限を削除します。また、定期的に既存のパーミッションを確認し、不要なアクセス権が残っていないか監査することも重要です。
さらに、sudoコマンドの設定を適切に管理することで、システムの安全性を高めることができます。sudoersファイル(通常は/etc/sudoers)を編集し、特定のユーザーやグループに対して実行可能なコマンドを制限します。これにより、管理者権限の乱用を防ぐと同時に、必要な操作のみを許可することでシステムの安定性を維持します。
以下に、sudoersファイルの編集に関する一般的な注意点を示します。
- sudoersファイルはvisudoコマンドを使用して編集する。直接編集すると構文エラーによりシステムにアクセスできなくなる可能性があるため、必ずvisudoを使用する。
sudoの制限と監査ログ設定
sudoはLinuxシステムにおける管理者権限の委任ツールですが、適切な制限を設けないとセキュリティリスクにつながる可能性があります。例えば、特定のユーザーに対して実行可能なコマンドを厳密に制限することで、誤操作や悪意のあるコマンド実行を防ぐことができます。これにより、システム全体の安全性を高めることが可能です。
監査ログの設定は、sudoコマンドの使用状況を追跡するために重要です。収集したログや権限変更の兆候を継続的に可視化したい場合は、Prometheusで始めるサーバー監視入門で監視基盤の作り方を確認できます。これにより、誰がいつどのようなコマンドを実行したかを把握できるため、セキュリティインシデントの早期発見や原因究明に役立ちます。例えば、/var/log/auth.logや/var/log/secureといったログファイルに記録されるため、定期的な確認が推奨されます。
制限を設ける際には、/etc/sudoersファイルを編集します。このファイルはvisudoコマンドを使用して編集することが推奨されており、構文エラーを防ぐことができます。例えば、特定のユーザーに対して特定のコマンドのみを許可する設定は以下のように行います。
username ALL=(ALL) NOPASSWD: /usr/bin/apt update(指定ユーザーにapt updateのみ許可)
権限の委譲と最小権限の原則
Linuxにおける権限の委譲とは、システム管理者が特定のユーザーやグループに対して、必要最小限の権限のみを与えることを指します。これにより、不要な権限によるセキュリティリスクを低減し、システム全体の安全性を高めることができます。例えば、一般ユーザーに対してはファイルの読み取り権限のみを付与し、書き込みや実行権限は制限することで、誤操作や悪意のある操作からシステムを保護します。
最小権限の原則は、ユーザーやプロセスが業務を遂行するために必要な権限のみを与える考え方です。複数サーバーにまたがる鍵と接続先を整理する方法は、SSH鍵認証の設定方法|configで複数サーバー管理で解説しています。この原則を適用することで、万が一のセキュリティ侵害が発生した場合でも、被害の拡大を最小限に抑えることが可能です。例えば、データベース管理者にはデータベースへのアクセス権限のみを与え、システム全体の管理権限は与えないといった運用がこれに該当します。
権限の委譲を実践する際には、以下の点に留意することが重要です。
- 委譲する権限は、業務遂行に必要な最小限の範囲に留める
また、権限の委譲を行う際には、定期的な権限の見直しと監査が欠かせません。システムの運用状況やユーザーの役割変更に応じて、権限の見直しを行うことで、常に最適な権限設定を維持することができます。
トラブルシューティング:権限エラーの解決法
Linuxにおける権限エラーは、システムのセキュリティを維持するために重要な役割を果たしていますが、開発や運用作業の妨げとなることも少なくありません。一般的な権限エラーの原因としては、ファイルやディレクトリの所有者・グループ・パーミッション設定の不整合、SELinuxやAppArmorなどのセキュリティモジュールによる制限、あるいはユーザーの所属グループ設定の不備などが挙げられます。これらの問題に直面した際は、まずはエラーメッセージの内容を丁寧に確認し、どの部分で権限が拒否されているのかを特定することが重要です。
具体的な解決策としては、まずファイルやディレクトリの所有者とパーミッションを確認することから始めます。ls -lコマンドを使用して所有者やグループ、パーミッションを表示し、意図した設定と異なる場合はchownやchmodコマンドで修正します。例えば、特定のユーザーに対して書き込み権限を与える場合は、chmod u+w ファイル名やchmod g+w ディレクトリ名といったコマンドが有効です。また、グループに属するユーザーに対して一括で権限を付与する際は、usermod -aG グループ名 ユーザー名でグループメンバーシップを更新します。
さらに、SELinuxやAppArmorなどの強制アクセス制御(MAC)が有効になっている場合、これらのポリシーによっても権限エラーが発生することがあります。この場合は、getenforceやaa-statusコマンドで現在の状態を確認し、必要に応じて一時的に無効化するか、ポリシーの調整を行います。ただし、セキュリティレベルを下げる操作は慎重に行う必要があり、本番環境では推奨されません。
- 権限エラーの解決にあたっては、
straceやauditdを活用してシステムコールやファイルアクセスのログを取得し、問題の根本原因を特定することも有効です。
ベストプラクティス:権限管理のチェックリスト
Linuxにおけるユーザー権限管理は、システムのセキュリティと安定稼働を支える重要な要素です。適切な権限設定が行われていない場合、不正なアクセスやシステム障害のリスクが高まります。そのため、定期的な権限の見直しと最小権限の原則に基づいた管理が求められます。具体的には、不要なsudo権限の削除や、ファイル・ディレクトリの所有者・グループの適切な設定が挙げられます。
権限管理のチェックリストを活用することで、システム管理者はセキュリティホールを未然に防ぎやすくなります。例えば、定期的にfindコマンドを使用して、世界中から書き込み可能なファイルやディレクトリを検出することができます。また、umask値の見直しにより、新規作成されるファイルやディレクトリのデフォルト権限を制御することも重要です。これらの取り組みは、システム全体のセキュリティレベルを向上させるだけでなく、運用コストの削減にもつながります。
以下は、権限管理のチェックリストの一例です。
- 不要なユーザーアカウントの削除:長期間使用されていないアカウントや、退職者のアカウントを定期的に確認し、削除または無効化します。
あわせて読みたい(当サイト関連記事)
まとめ:セキュアなLinux環境を構築しよう
Linuxにおけるユーザー権限管理は、システムのセキュリティを維持するための基盤です。適切な権限設定と所有者の管理により、不正アクセスや誤操作のリスクを低減できます。rootユーザーの濫用を避け、必要最小限の権限で運用することが重要です。また、定期的な権限の見直しや不要なサービスの停止も、セキュリティ強化につながります。
実践的な権限管理では、グループやACL(アクセス制御リスト)を活用し、柔軟なアクセス制御を実現します。sudoコマンドを適切に使用することで、管理者権限の安全な運用が可能です。これらの基礎を押さえつつ、システムの状態を常に監視し、ログの分析やアップデートの適用を怠らないことが、長期的なセキュリティ維持に不可欠です。
よくある質問(FAQ)
Linuxのユーザー権限管理に関する疑問や実務的な課題について、一般的な質問と回答をまとめました。権限設定やトラブルシューティングの参考にご活用ください。
Q1. Linuxの一般ユーザーがroot権限を一時的に利用する方法は?
A1. Linuxではsudoコマンドを使用して、一般ユーザーが一時的にroot権限を取得できます。sudoを実行すると、自身のパスワードを入力することで管理者権限の操作が可能です。ただし、sudoの利用は管理者によって設定されたユーザーに限定され、不正な使用を防ぐためにログが記録されます。sudoを実行する際は、実行するコマンドがシステムに与える影響を十分理解した上で使用してください。sudoの設定は/etc/sudoersファイルで管理されており、編集にはvisudoコマンドを使用します。
Q2. ファイルやディレクトリの権限を変更する際の注意点は?
A2. ファイルやディレクトリの権限を変更する際は、chmodやchownコマンドを使用しますが、過度な権限付与はセキュリティリスクを招くため注意が必要です。例えば、chmod 777は全てのユーザーに対して読み書き実行権限を付与するため、機密情報を含むファイルには絶対に使用しないでください。また、chownで所有者を変更する際は、対象のファイルやディレクトリが存在することを確認し、不要な所有者変更はシステムの動作に影響を与える可能性があります。権限変更後は、ls -lコマンドで正しく反映されているか確認しましょう。
Q3. Linuxで権限エラーが発生した場合の対処法は?
A3. 権限エラーが発生した場合は、まずエラーメッセージを確認し、どの操作に対して権限が不足しているのかを特定します。例えば「Permission denied」というエラーが表示された場合は、実行しようとしているコマンドやファイルに対する権限が不足している可能性があります。対処法として、sudoを使用して一時的に権限を昇格させるか、ファイルやディレクトリの所有者や権限をchownやchmodで適切に設定します。また、SELinuxやAppArmorなどのセキュリティモジュールが有効になっている場合は、それらのポリシーも確認する必要があります。
Q4. Linuxのユーザーグループを効果的に活用する方法は?
A4. Linuxのユーザーグループを活用することで、複数のユーザーに対して一括で権限を管理できます。例えば、特定のプロジェクトに関わるユーザーをproject_teamというグループに所属させ、そのグループに対してのみ特定のディレクトリへのアクセス権限を付与します。グループの作成はgroupaddコマンド、ユーザーのグループ追加はusermod -aGコマンドで行います。グループを活用する際は、定期的にグループメンバーや権限を確認し、不要なアクセス権が残らないように管理しましょう。グループに関する設定は/etc/groupファイルで確認できます。
Linuxユーザーの権限を確認する主要コマンド
「Linuxのユーザー権限を確認したい」という場合によく使うコマンドを整理します。
| コマンド | 確認できる内容 |
|---|---|
id [ユーザー名] | ユーザーID(UID)・所属グループID(GID)・所属グループ一覧をまとめて確認 |
whoami | 現在ログインしているユーザー名を確認 |
groups [ユーザー名] | 指定ユーザーが所属している全グループ名を確認 |
ls -l ファイル/ディレクトリ | ファイル・ディレクトリの所有者・所有グループ・パーミッション(rwx)を確認 |
getfacl ファイル | ACL(アクセス制御リスト)で個別に追加された権限を確認 |
sudo -l | 現在のユーザーがsudoで実行できるコマンド一覧を確認 |
権限トラブルの切り分けでは、まずidコマンドでそのユーザーがどのグループに属しているかを確認し、次にls -lでファイル側のパーミッション設定を確認する、という順番が効率的です。グループ単位でアクセス制御している場合、ユーザーをグループに追加した後は再ログインしないと反映されない点にも注意してください。
本記事はInfra Academy編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。
編集ポリシーはこちら




