🗂

Day 16: Linuxのユーザー管理とパーミッションの仕組み - Linuxの基礎

2024/11/17に公開

はじめに

この記事では、Day14で軽く触れたLinuxのパーミッション管理について基本を復習し、さらに詳しく掘り下げていきます。加えて、ユーザーやグループ管理の方法、特殊なパーミッション設定についても解説します。これらを理解することで、Linuxシステムのアクセス制御やセキュリティ設定を効率的に行えるようになります。


ファイルとディレクトリの基本的なパーミッション

Linuxのファイルやディレクトリには、それぞれオーナーやグループに応じた異なる権限が設定されており、これらが操作の範囲を制御します。

権限の基本構造

  • オーナー(owner):ファイルを作成したユーザー。
  • グループ(group):オーナーが属するグループのメンバー。
  • その他(others):上記以外のすべてのユーザー。

各カテゴリに設定できる権限は以下の通りです:

  • r(read):ファイルの閲覧やディレクトリ内容の確認が可能。
  • w(write):ファイルの編集やディレクトリ内への追加・削除が可能。
  • x(execute):プログラムの実行やディレクトリ内アクセスが可能。

ls -lコマンドを使うと、ファイルやディレクトリの権限を確認できます。

例:

-rwxr-x---  1 admin staff 67890 kano 05 12:00 script.sh
  • オーナー(rwx):すべての操作が可能。
  • グループ(r-x):読み取りと実行が可能。
  • その他(---):すべての操作が不可。

パーミッションの変更

ファイルやディレクトリの権限は、chmodコマンドを使って変更できます。変更内容の指定方法には、シンボリックモード数値モードがあります。

シンボリックモードで変更

権限を文字で指定する方法です。

  • 構文

    chmod [カテゴリ][操作][権限] ファイル名
    
  • 権限のカテゴリ

    • u:オーナーの権限
    • g:グループの権限
    • o:その他のユーザーの権限
    • a:全ユーザーの権限
  • 権限の操作

    • +:権限を追加
    • -:権限を削除
    • =:指定した権限に設定
    • その他のユーザーに実行権限を追加:
      chmod o+x example.txt
      
    • グループの書き込み権限を削除:
      chmod g-w example.txt
      

数値モードで変更

権限を3桁の数値で指定する方法です。

  • 権限の数値対応表

    • 読み取り(r):4
    • 書き込み(w):2
    • 実行(x):1
    • オーナーにすべての権限(4+2+1)、グループとその他に読み取り権限のみ(4)を付与:
      chmod 744 example.txt
      

オーナーとグループの管理

ファイルのオーナーやグループを変更することで、より柔軟なアクセス制御が可能になります。

chownコマンド

ファイルのオーナーを変更します。

  • 構文

    chown [新しいオーナー] ファイル名
    
  • chown user2 example.txt
    

chgrpコマンド

ファイルのグループを変更します。

  • 構文

    chgrp [新しいグループ] ファイル名
    
  • chgrp group2 example.txt
    

特別なパーミッション

Linuxでは、通常のパーミッションに加えて、以下の特殊なパーミッションを設定できます。

SUID(Set User ID)

ファイルの実行時に、そのオーナーの権限で動作します。

  • 用途:特定のプログラムに管理者権限を一時的に付与。
  • 設定例
    chmod u+s /path/to/program
    

SGID(Set Group ID)

ファイルやディレクトリを実行する際、そのグループの権限で動作します。

  • 用途:グループのアクセス制御を統一。
  • 設定例
    chmod g+s /path/to/directory
    

Stickyビット

ディレクトリ内のファイルを、作成者のみが削除可能にする。

  • 用途:共同作業用ディレクトリのセキュリティ強化。
  • 設定例
    chmod +t /shared_directory
    

小テスト

Q1: ファイルのオーナーを変更するコマンドはどれですか?
a) chmod
b) chgrp
c) chown
d) useradd

Q2: ファイルのパーミッション「744」に対応する権限は何ですか?
a) オーナーが読み取りのみ、グループとその他は読み取り可能
b) オーナーがすべての権限、グループとその他が読み取り可能
c) グループがすべての権限、その他が書き込み可能
d) オーナーがすべての権限、グループとその他がすべての権限

Q3: Stickyビットの目的は何ですか?
a) ファイルを暗号化する
b) 特定のユーザーだけがディレクトリ内のファイルを削除できるようにする
c) 特定のプログラムに管理者権限を付与する
d) プロセスを一時停止する

Q4: ファイルのグループを変更するコマンドはどれですか?
a) chmod
b) chgrp
c) chown
d) userdel

Q5: 特定のユーザーが実行時にオーナーの権限を使用するための特殊なパーミッションはどれですか?
a) SUID
b) SGID
c) Stickyビット
d) rwx


解答

  1. Q1: c) chown
  2. Q2: b) オーナーがすべての権限、グループとその他が読み取り可能
  3. Q3: b) 特定のユーザーだけがディレクトリ内のファイルを削除できるようにする
  4. Q4: b) chgrp
  5. Q5: a) SUID

まとめ

この記事では、Linuxのパーミッション管理やユーザー・グループ管理、そして特殊なパーミッションについて学びました。これらのスキルを理解し活用することで、システムのセキュリティを高め、効率的なアクセス制御が可能になります。次回は、Linuxと同様に多くの人々に利用されているWindowsについて触れていきます。

Discussion