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 / +tSUID・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 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Linux コマンド一覧(LinuC レベル1 の範囲)へ戻る