第2章:ファイル権限とユーザー管理

2.1 ファイル権限の仕組み

Linuxの権限システム -rwxr-xr-- 1 user group 1024 Jan 15 10:30 script.sh ファイルタイプ - = ファイル d = ディレクトリ 所有者権限 r = 読み取り(4) w = 書き込み(2) x = 実行(1) グループ権限 r = 読み取り(4) - = なし(0) x = 実行(1) その他権限 r = 読み取り(4) - = なし(0) - = なし(0) 数値表記 rwx r-x r-- = 754 7(4+2+1) 5(4+0+1) 4(4+0+0) よく使う権限パターン 755 (rwxr-xr-x) → 実行ファイル、スクリプト(所有者は全権限、他は読み実行のみ) 644 (rw-r--r--) → 通常のファイル(所有者は読み書き、他は読み取りのみ) 600 (rw-------) → 秘密鍵など(所有者のみアクセス可能) 777 (rwxrwxrwx) → ⚠️ 危険!全員が全権限(避けるべき)

2.2 権限の変更コマンド

chmod - 権限変更

$ chmod 755 script.sh
$ chmod u+x file.txt
$ chmod go-w important.txt

数値指定:

  • 4 = 読み取り (r)
  • 2 = 書き込み (w)
  • 1 = 実行 (x)

記号指定:

  • u = 所有者 (user)
  • g = グループ (group)
  • o = その他 (others)
  • a = 全員 (all)

chown - 所有者変更

$ sudo chown user file.txt
$ sudo chown user:group file.txt
$ sudo chown -R user:group directory/

オプション:

  • -R ディレクトリ内を再帰的に変更

chgrp - グループ変更

$ sudo chgrp developers project/
$ sudo chgrp -R www-data /var/www/

グループのみを変更したい時に使用

2.3 ユーザーとグループ管理

ユーザーとグループの関係 alice ユーザー bob ユーザー carol ユーザー developers グループ admin グループ 1人のユーザーは複数のグループに所属できる ファイルやディレクトリはユーザーとグループで管理される

2.4 ユーザー管理コマンド

useradd - ユーザー追加

$ sudo useradd newuser
$ sudo useradd -m -s /bin/bash john
$ sudo useradd -G developers alice

オプション:

  • -m ホームディレクトリ作成
  • -s デフォルトシェル指定
  • -G 追加グループ指定

passwd - パスワード設定

$ sudo passwd newuser
$ passwd # 自分のパスワード変更

強力なパスワードを設定しよう

usermod - ユーザー情報変更

$ sudo usermod -aG sudo alice
$ sudo usermod -s /bin/zsh bob
$ sudo usermod -L baduser # ロック

-aG グループに追加(-a なしだと置換)

userdel - ユーザー削除

$ sudo userdel olduser
$ sudo userdel -r olduser # ホームも削除

⚠️ -r はホームディレクトリも削除

groupadd - グループ追加

$ sudo groupadd developers
$ sudo groupadd -g 1500 special

-g グループID指定

groups - 所属グループ確認

$ groups
$ groups alice
$ id alice # より詳細な情報

ユーザーの所属グループを確認

2.5 特殊な権限

SUID (Set User ID)

$ chmod u+s program

実行時に所有者の権限で動作(例:passwd コマンド)

SGID (Set Group ID)

$ chmod g+s directory/

ディレクトリ内の新規ファイルが同じグループになる

スティッキービット

$ chmod +t /tmp

所有者以外はファイル削除不可(共有ディレクトリ用)

⚠️ セキュリティの基本原則

  • 最小権限の原則:必要最小限の権限のみを付与
  • 777は避ける:全員に全権限は危険
  • sudoの適切な使用:管理者権限は必要な時だけ
  • 定期的な確認:不要なユーザーや権限を定期的に見直す