chmod の使い方
権限を変える
書き方
chmod 755 ファイル chmod u+x,go-w ファイル chmod -R モード ディレクトリ chmod u+s / u-s ファイル(SUID) chmod g+s ディレクトリ・chmod 2775(SGID) chmod +t ディレクトリ・chmod 1777(スティッキービット)
r=4 w=2 x=1 を所有者・グループ・その他の順に足した数字、または u/g/o と +-= で指定します。4 桁目は 4=SUID 2=SGID 1=スティッキー。ls -l では s(x あり)・S(x なし)・t・T と表示されます。
よく使うオプション
| オプション | 意味 |
|---|---|
数字(755 など) | r=4 w=2 x=1 を、持ち主・グループ・その他の順に足した数で決める |
u/g/o/a と + - = | 持ち主(u)・グループ(g)・その他(o)・全員(a)に足す・外す・決める |
-R | ディレクトリの中身にもまとめて付ける |
u+s / g+s / +t | SUID・SGID・スティッキービットを付ける |
例
$ chmod +x deploy.sh
スクリプトに実行の権限を付け、./deploy.sh で動かせるようにします。
$ chmod 600 ~/.ssh/id_ed25519
秘密鍵を自分だけが読み書きできるようにします。広すぎると ssh が鍵を使ってくれません。
$ chmod 755 /srv/app/bin
持ち主は全部、ほかの人は読む・入るだけ(rwxr-xr-x)にします。
$ chmod g+w,o-r shared.txt
グループに書く権限を足し、その他の人から読む権限を外します。
$ sudo chmod 1777 /srv/share
誰でも書けるが、消せるのは自分のファイルだけ、という /tmp と同じ形にします。
よくある間違い・注意
- chmod 777 は誰でも書き換えられる状態です。動かないからといって付けるのは避けます。
- ディレクトリは x が無いと中へ入れません。中を見せたいディレクトリには r と x の両方が要ります。
- -R で 644 にすると、中のディレクトリにも x が無くなって入れなくなります。ディレクトリだけに付けるときは find -type d と組み合わせます。
実際に打って練習する
Linux レベル1 コースの Lv42「扉の鍵 chmod」で覚えます(第3章 権限の城(権限とユーザー))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜16 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。