#簡易早見
#形式
chmod 権限設定 ファイルパス
#chmod 744 test.txt
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
--- | --x | -w- | -wx | r-- | r-x | rw- | rwx |
4 2 1
r w x
#概要
chmod
はファイル or ディレクトリに対する権限を設定するコマンド。
ユーザー区分ごとに権限を設定できる。
#基礎知識
####権限の区分(設定する範囲)
所有者権限 | グループ権限 | その他のユーザーの権限 |
---|
####権限の基本種類(他にもある)
読み込み権限 | 書き込み権限 | 実行権限 |
---|---|---|
r | w | x |
####権限の範囲
数値0~7
で各区分(ユーザーグループ)が所有する権限の範囲を設定。区分が3種なので3桁の数値で設定する。0 は権限が無く、7 は全ての権限を有する。
数値 | 権限 | 内容 |
---|---|---|
0 | --- | 権限なし |
1 | --x | 実行できるよ |
2 | -w- | 書き込みできるよ |
3 | -wx | 書込・実行できるよ |
4 | r-- | 読み込みできるよ |
5 | r-x | 読込・実行できるよ |
6 | rw- | 読込・書込みできるよ |
7 | rwx | 読込・書込・実行できるよ |
#権限指定時の記法記号
chmod実行時に使用できる設定用記号文字
記号 | 意味 |
---|---|
u | 所有者の権限 |
g | グループの権限 |
o | その他のユーザーの権限 |
a | すべての権限 |
+ | 後に記述した権限を付加する |
- | 後に記述した権限を削除する |
= | 後に記述した権限にする |
r | 読み込み権限 |
w | 書き込み権限 |
x | 実行権限 |
s | セットID |
t | スティッキ・ビット |
#コマンドのオプション
引数 | 内容 |
---|---|
-v | コマンド実行結果を表示 |
-c | 変更があった場合のみ、実行結果を表示 |
-R | 再帰的に変更 |
#コマンド設定例
#すべてのユーザーに実行権限を与える
chmod +x test
# -rwxr-xr-x test
#グループに書き込み権限をその他のユーザーにはすべて禁止する
chmod g+w,o= test
# -rwxrwx--- test
#数字表記ですべてのユーザーを読み出し権限のみにする
chmod 444 test
# -r--r--r-- test
#所有者(管理者)に全権限付与、他ユーザーには 書込+読込 の権限を付与
chmod 766 test
# -rwxrw-rw- test
#ディレクトリとディレクトリ内のファイル全ての権限を(再帰的に)変更する
chmod -R 766 dir
# vオプションで、実行結果を表示させつつ実行
chmod -vR 755 dir
# cオプションがあるので、結果が変わらない場合は実行結果の表示なし
chmod -cR 755 dir
#その他
chmod 700 test
# -rwx------ test
chmod 600 test
# -rw------- test
スティッキ・ビットの例
スティッキビットの身近な例は/tmp
とか
ls -ld /tmp
# drwxrwxrwt 1 root root 512 Dec 12 16:56 /tmp
# ↑ ここ
/tmp 以下は無法地帯になりそうですが, スティッキービットが付与されているため, 自分が作成したファイル・ディレクトリ以外は削除などできないようになって, 治安が保たれています。
スティッキービットについて - 寒月記
ここを押して例を表示
chmod +t T_tuki
# drwxrwxrwt 1 oba3 oba3 512 Dec 12 17:33 T_tuki/
chmod 1000 T_tuki
# d--------T 1 oba3 oba3 512 Dec 12 17:33 T_tuki/
chmod 1775 T_tuki
# drwxrwxr-T 1 oba3 oba3 512 Dec 12 17:33 T_tuki/
chmod 1777 T_tuki
# drwxrwxrwt 1 oba3 oba3 512 Dec 12 17:33 T_tuki/
id
# uid=1791(oji3) ~
# 現在ユーザーは oji3
chmod +t T_tuki
# スティッキビットをディレクトリ権限に付与
ls -l
# drwxrwxrwt 1 oba3 oba3 512 Dec 12 17:33 T_tuki/
# drwxrwxrwx 1 oba3 oba3 512 Dec 12 17:33 t_nasi/
ls -l -R T_tuki t_nasi
# T_tuki:
# total 0
# drwxrwxrwt 1 oba3 oba3 512 Dec 12 17:33 ./
# drwxr-xr-x 1 oba3 oba3 512 Dec 12 17:28 ../
# -rwxrwxrwx 1 oba3 oba3 0 Dec 12 17:31 kesenai*
#
# t_nasi:
# total 0
# drwxrwxrwx 1 oba3 oba3 512 Dec 12 17:33 ./
# drwxr-xr-x 1 oba3 oba3 512 Dec 12 17:28 ../
# -rwx------ 1 oba3 oba3 0 Dec 12 17:31 keseru*
rm T_tuki/kesenai; ls -l T_tuki
# rm: cannot remove 'T_tuki/kesenai': Operation not permitted
# total 0
# drwxrwxrwt 1 oba3 oba3 512 Dec 12 17:33 ./
# drwxr-xr-x 1 oba3 oba3 512 Dec 12 17:28 ../
# -rwxrwxrwx 1 oba3 oba3 0 Dec 12 17:31 kesenai*
rm t_nasi/keseru; ls -l t_nasi
# total 0
# drwxrwxrwx 1 oba3 oba3 512 Dec 12 17:33 ./
# drwxr-xr-x 1 oba3 oba3 512 Dec 12 17:28 ../
# ----------------------------------------------------------------------
# T_tuki/kesenai はディレクトリ権限が 1777 で、スティッキビットがディレクトリに設定されているため、中のファイルが(ファイル所有者が oji3 でなければ)削除できない。
# t_nasi/keseru はディレクトリ権限が 777 のため、中のファイル所有者が oba3 で ファイル権限が 700 でもファイル削除できる。
ファイルの削除はファイルのパーミッションに関わらず、ディレクトリのパーミッションが参照されます。
しかし、スティッキービットを指定したディレクトリに関しては、
ファイルの削除がファイルの所有者のみに制限されます。
パーミッションについて - Qiita
【 chmod 】 ファイルやディレクトリのアクセス権を変更する | 日経 xTECH(クロステック)
パーミッションなどを設定する!chmodコマンドの詳細まとめ【Linuxコマンド集】