第2章:ファイル権限とユーザー管理
2.1 ファイル権限の仕組み
2.2 権限の変更コマンド
chmod - 権限変更
$ chmod 755 script.sh
$ chmod u+x file.txt
$ chmod go-w important.txt
$ 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/
$ 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/
$ sudo chgrp -R www-data /var/www/
グループのみを変更したい時に使用
2.3 ユーザーとグループ管理
2.4 ユーザー管理コマンド
useradd - ユーザー追加
$ sudo useradd newuser
$ sudo useradd -m -s /bin/bash john
$ sudo useradd -G developers alice
$ sudo useradd -m -s /bin/bash john
$ sudo useradd -G developers alice
オプション:
-m
ホームディレクトリ作成-s
デフォルトシェル指定-G
追加グループ指定
passwd - パスワード設定
$ sudo passwd newuser
$ passwd # 自分のパスワード変更
$ passwd # 自分のパスワード変更
強力なパスワードを設定しよう
usermod - ユーザー情報変更
$ sudo usermod -aG sudo alice
$ sudo usermod -s /bin/zsh bob
$ sudo usermod -L baduser # ロック
$ sudo usermod -s /bin/zsh bob
$ sudo usermod -L baduser # ロック
-aG
グループに追加(-a なしだと置換)
userdel - ユーザー削除
$ sudo userdel olduser
$ sudo userdel -r olduser # ホームも削除
$ sudo userdel -r olduser # ホームも削除
⚠️ -r
はホームディレクトリも削除
groupadd - グループ追加
$ sudo groupadd developers
$ sudo groupadd -g 1500 special
$ sudo groupadd -g 1500 special
-g
グループID指定
groups - 所属グループ確認
$ groups
$ groups alice
$ id alice # より詳細な情報
$ 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の適切な使用:管理者権限は必要な時だけ
- 定期的な確認:不要なユーザーや権限を定期的に見直す