この記事では、Linux ユーザーを適切に編成することの重要性について説明します。ユーザーの作成と構成方法から始まり、特定のファイルとフォルダーへのアクセスを許可する方法まで、アクセス権について説明します。また、システムを不要なアクティビティから保護するのに役立つ、sudo や SELinux などの重要なセキュリティ ツールについても説明します。
Linux におけるユーザー管理とアクセス権の重要性
Linuxの世界では、ユーザー管理とアクセス権限が重要な役割を果たします。Linuxを大きなアパートに例えると、各ユーザーはテナント、各ファイルは部屋です。ユーザー管理は各テナントに固有の鍵を割り当てるようなもので、アクセス権限は各テナントが自分の部屋で何ができるかを示すものです。
ユーザーが作成されると、名前と固有の識別子(UID)が割り当てられます。これは、アパートの鍵のようなものです。ユーザーはグループにも所属し、他の入居者と繋がります。グループは、メンバーが共通の特典を共有するクラブのようなものです。
ファイルアクセス権限は、所有者(ユーザー)、グループ、その他の3つのカテゴリに分類されます。各キー(ユーザー)は、各カテゴリに対して読み取り、書き込み、実行の固有の権限を持つことができます。たとえば、ファイルの所有者は読み取りと書き込みの権限を持ち、グループは読み取りのみ、その他のユーザーは何も権限を持たないといった具合です。
Linuxシステムで使用されるsudoやSELinuxなどのセキュリティポリシーには、特に注意が必要です。sudoは、通常管理者のみが実行できる特定のタスクを、一般ユーザーが一時的にスーパーユーザー(root)権限で実行できるようにする特別なコマンドです。これにより、スーパーユーザー権限の誤用や不正使用を防ぐことができます。sudoを使用する際、ユーザーは通常、本人確認のためにパスワードを入力する必要があります。その後、 sudoersファイルに設定されたルールに従って、スーパーユーザー(root)権限でコマンドを実行できます。
SELinuxは、Linuxオペレーティングシステムに追加されるセキュリティ層です。システム内で使用可能なプログラムやファイルを監視し、それらへのアクセスを制限することで、侵入や攻撃を防ぎます。これにより、ハッキングの試みや悪意のある行為を防ぎ、サーバーのセキュリティを強化します。
ユーザーの作成と管理
Linuxでユーザーを作成する方法
Linuxユーザーは通常、useraddコマンドで作成されます。たとえば、「username」という名前のユーザーを作成するには、次のように入力します。
useradd username
Linux ユーザーのパスワードを設定する方法
ユーザーを作成しても、そのアカウントはパスワードで保護されていません。新しいユーザーにパスワードを設定するには、passwdコマンドを使用します。
passwd username
ここで、username はパスワードを設定するユーザーの名前です。
Linux でユーザーのリストを表示する方法
Linuxでターミナル上で単一のコマンドを使ってユーザー一覧を表示するには、cutコマンドを使用できます。
cut -d: -f1 /etc/passwd
このコマンドは、すべてのユーザーに関する情報を含む/etc/passwdファイルの内容を読み取ります。
特定のユーザーに関する情報を取得するには、次のコマンドを使用します。
id username
これにより、ユーザーのUID、GID、およびグループが表示されます。
Linux ユーザーの削除
ユーザーを削除するには、userdelコマンドを使用します。
userdel username
ただし、このコマンドではユーザーのホームディレクトリ内のファイルは削除されません。それらを削除するには、-rオプションを使用してください。
userdel -r username
これにより、ユーザーのユーザー名とホーム ディレクトリおよびその中のすべてのファイルが削除されます。
Linux ユーザーの変更
ユーザー情報を変更するには、usermodコマンドを使用します。このツールは以下の構文を使用します。
usermod argument user
可能な引数の完全なリストは、ユーティリティのヘルプに表示されます。
たとえば、ユーザーのホーム ディレクトリを変更するには、次のコマンドを使用します。
usermod -d /new/path/to/directory username
Linux でのユーザー グループの作成と管理
Linux のユーザー グループを使用すると、管理者は同様のアクセス権を持つユーザーをグループ化できます。これにより、アクセス権の管理が容易になり、各ユーザーごとに権限を設定するのではなく、グループ レベルで権限を設定できるため、システムのセキュリティが強化されます。例として、ユーザー admin を持つ開発者グループを考えてみましょう。
Linux でユーザー グループを作成する方法
新しいグループを作成するには、groupaddコマンドに新しいグループ名を指定します。
sudo groupadd group_name
この例では、コマンドは次のようになります。
sudo groupadd developers
Linux でユーザー グループを削除する方法
グループを削除するには、groupdelコマンドを使用します。
sudo groupdel group_name
したがって、コマンド:
sudo groupdel developers
developersという名前のグループを削除します。
グループへのユーザーの追加
ユーザーを特定のグループに追加するには、usermodコマンドを使用します。
sudo usermod -aG group_name user_name
具体的な例を挙げますと、以下の通りです。
sudo usermod -aG developers admin
このコマンドは、 adminという名前のユーザーをdevelopersグループに追加します。
グループからユーザーを削除する
グループからユーザーを削除するには、deluserコマンドを使用します。
sudo deluser user_name group_name
ユーザー「admin」を開発者グループから削除するコマンド:
sudo deluser admin developers
Linux でのグループ リストの表示
システム内のすべてのグループの一覧を表示するには、/etc/groupファイルに対してcatコマンドを使用します。
cat /etc/group
このコマンドは、システム内のすべてのグループのリストを表示します。
ユーザーグループメンバーシップの確認
アクションを実行した後、 groups コマンドを使用してユーザーが属するグループを確認できます。
groups user_name
ここまで、Linux でのユーザー グループ管理の基本について説明しました。次は、ファイルとディレクトリへのアクセス権の割り当てについて検討する次の段階に進みましょう。このプロセスにより、特定のファイルとディレクトリに関してユーザーまたはグループが実行できるアクションを決定し、効果的なセキュリティ管理とシステム リソースへのアクセスを確保できます。
ファイルとディレクトリへのアクセス権の割り当て
アクセス権の象徴的な表現
既に述べたように、Linuxには所有者(ユーザー)、グループ、その他の3種類のユーザーが存在します。それぞれのユーザーは、ファイルやディレクトリへの特定のアクセス権限を持つことができます。
- 読み取り (Read - r): ファイルまたはディレクトリの内容を表示できます。
- 書き込み (Write - w): ディレクトリ内のファイルを変更したり、新しいファイルを作成したりすることができます。ディレクトリの場合、そこからファイルを削除することもできます。
- 実行 (Execute - x): ファイルの実行 (実行可能ファイルの場合) またはディレクトリへの移動 (ディレクトリの場合) を許可します。
Linux ファミリー システムでは、アクセス権は 10 文字の文字列で表されます。最初の文字はファイルの種類 (通常のファイル、ディレクトリなど) を示し、残りの XNUMX 文字はユーザー グループごとに XNUMX 文字の XNUMX つのグループです。理解を深めるために、例を考えてみましょう。
アクセス権限-rwxr-xr-- の意味:
- 最初の文字 (-) はファイルの種類 (この場合は通常のファイル) を示します。
- 所有者の 3 文字 (rwx) は、所有者が読み取り、書き込み、および実行の権限を持っていることを示します。
- グループの 3 文字 (rx) は、グループ メンバーに読み取り権限と実行権限のみがあることを示します。
- 他のユーザーを表す 3 文字 (r--) は、他のユーザーがファイルの読み取りのみ可能であることを意味します。
アクセス権限はchmodコマンドを使用して設定します。構文は以下のとおりです。
chmod [options] mode file(s)
どこ:
- [オプション] - ディレクトリとそのサブディレクトリ内のアクセス権を再帰的に変更するための -R などの追加パラメータ。
- mode - どのアクセス権を誰に対して変更するかを指定する特別な文字列。モードは、シンボル (r、w、x) とビット (0 または 1) で指定できます。数値モードも使用できます (これについては後で説明します)
- ファイル - 変更が適用されるファイルまたはディレクトリ。
このユーティリティは非常に強力なツールなので、例としていくつかの基本的なコマンドのみを見ていきます。
ファイルへのアクセス権を変更して、所有者に読み取りと書き込みの権限を与え、グループに読み取り権限のみを与え、他のユーザーには権限を与えないようにします。
chmod u=rw,g=r,o= filename
すべてのユーザーにファイルの読み取りと書き込みのアクセス権を設定します。
chmod a+rw filename
ディレクトリ内のすべてのファイルとサブディレクトリのアクセス権を再帰的に変更します。
chmod -R u+rwx directory
アクセス権の数値表現
数値表現では、各ユーザー カテゴリ (所有者、グループ、その他) に番号があり、これらの番号の組み合わせによって最終的なアクセス権が設定されます。記号表現と同様に、3 つの権限のそれぞれに値がありますが、数値で表されます。
- 読み取り(読み取り) - 値 4
- 書き込み(書き込み) - 値 2
- 実行(実行) - 値 1
数値はユーザーの種類を決定するためにも使用されます。
- ファイル所有者(ユーザー) - 最初の数字
- 所有者のグループ(グループ) - 2桁目
- その他のユーザー(その他) - 3桁目
したがって、ファイル アクセス権の完全な数値表現は 10 桁の数字で構成され、各数字は特定のユーザー カテゴリの権限値の合計を表します。これは、記号表現で XNUMX 文字を使用するよりも便利です。この場合の管理は次のようになります。
chmod XYZ file
ここで、 X、Y、Zはそれぞれ所有者、グループ、その他のユーザーのアクセス権限を表す数値です。
たとえば、所有者にフルアクセス権 (読み取り、書き込み、実行) を付与し、グループと他のユーザーには読み取りと実行のみを許可するには、次のコマンドを使用します。
chmod 755 file
他の例を考えてみましょう:
chmod 700 file
所有者のみが読み取り、書き込み、実行の権限を持ち、グループおよび他のユーザーにはアクセス権がありません。
chmod 644 file
所有者には読み取りと書き込みの権限がありますが、グループと他のユーザーには読み取り権限のみがあります。
chmod 751 file
所有者には完全な権限があり、グループには読み取り権限と実行権限があり、他のユーザーには実行権限のみがあります。
前述したように、このツールは非常に広範な機能を備えています。場合によっては、「ヘルプ」セクションで利用できるオプションだけでは不十分です。
最後の行に注目してください。このコマンドを使用すると、ツールのより詳細なドキュメントが表示されます。また、ユーティリティの公式Wikipediaページにアクセスして、Chmodに関する詳細情報を確認することもできます。
結論
Linux ユーザーとその管理は、OS のセキュリティと安定した動作にとって非常に重要です。この記事では、Linux における効果的なユーザーおよびアクセス権管理の重要性について説明し、ユーザーの作成と管理、ユーザー グループの操作、ファイルとディレクトリへのアクセス権の割り当てについて説明しました。