-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathchmod.re
119 lines (86 loc) · 4.94 KB
/
chmod.re
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#@#
//footnote[other][他者(others)とは、ユーザつまりファイルのオーナー(所有者)でもなく、ファイルのグループにも属していないユーザ]
=={chmod} @<term>{chmod}
ファイルやディレクトリの@<B>{@<idx>{パーミッション}(アクセス権限)}を変更することができる。
これにより、ファイルやディレクトリに対する@<B>{読み取り、書き込み、実行}などの@<idx>{権限((けんげん))}を設定することができる。
=== 書式
//list[][][fontsize=xx-small]{
$ chmod [オプション] モード ファイル...
//}
* 「モード」部分には、数値を用いた絶対値指定と、シンボルによる指定がある。
** 数値指定では、以下の値を足し合わせた 8 進数を用いる。
@<table>{table-chmod-number}を参照
** シンボルは、
@<table>{table-chmod-symbol-who}と@<table>{table-chmod-symbol-perm}を参照
* 「ファイル...」部分には、
ファイル、ディレクトリ、複数のファイルやディレクトリを指定できる。
たとえば、所有者に読み込み・書き込み・実行を許可し、グループのメンバに読み込み・実行を許可し、 他者@<fn>{other}に読み込み・実行を許可する絶対値指定のモードは、 755 (400+200+100+040+010+004+001) となる。
who シンボルの'u','g','o'はそれぞれユーザ、グループ、他者に相当する。
'a'シンボルは'ugo'を指定した場合と同じになる。
@<table>{table-chmod-symbol-who}を参照
perm シンボルはモードの各ビットを
@<table>{table-chmod-symbol-perm}
のように表現する。
//table[table-chmod-number][絶対値指定]{
値 説明
----------------------------------------
400 所有者の読み込みを許可。
200 所有者の書き込みを許可。
100 ファイルの場合、所有者による実行を許可。
ディレクトリの場合、所有者による検索@<fn>{searchable}および(ディレクトリ内への)移動を許可。
040 グループのメンバからの読み込みを許可。
020 グループのメンバからの書き込みを許可。
010 ファイルの場合、グループのメンバによる実行を許可。
ディレクトリの場合、グループのメンバによる検索および(ディレクトリ内への)移動を許可。
004 他者からの読み込みを許可。
002 他者からの書き込みを許可。
001 ファイルの場合、他者による実行を許可。
ディレクトリの場合、他者による検索および(ディレクトリ内への)移動を許可。
//}
//table[table-chmod-symbol-who][シンボル指定(who):操作対象を指定する]{
だれ 説明
------------------------------------
u ファイルの所有者が対象
g ファイルのグループに属しているユーザが対象
o 上記2つに該当しないユーザ、他者が対象
//}
//table[table-chmod-symbol-perm][シンボル指定(perm):(whoで指定した対象に対する)権限の追加・削除]{
権限 説明
------------------------------------
r 読み込み許可ビット
w 書き込み許可ビット
x 実行もしくは検索/移動許可ビット
//}
//footnote[searchable][マニュアルにsearchableとあるので直訳だが、実際に何を意味するのか?を正確に説明することは難しい。とりあえず、ディレクトリの中を見る/に移動するには@<B>{+x}が必要と覚えておいてほしい]
=== 実行例
アクセス権限が0664(rw-rw-r--)のtext.txtに0644(rw-r--r--)を設定する。
//list[][][fontsize=xx-small]{
$ ls -l @<balloon>{このコマンドでファイルの権限を確認できる}
-rw-rw-r-- 1 admin205 group205 63 Sep 10 16:07 test.txt
$ chmod 644 text.txt
もしくは
$ chmod u=rw,g=r,o=r text.txt
$ ls -l
//}
==== 実行結果
//list[][][fontsize=xx-small]{
-rw-rw-r-- 1 admin205 group205 63 Sep 10 16:07 test.txt @<balloon>{変更前}
-rw-r--r-- 1 admin205 group205 63 Sep 10 16:07 test.txt @<balloon>{変更後}
//}
==== 解説
アクセス権限が0664(rw-rw-r--)のtext.txtが、0644(rw-r--r--)に変更された。
「所有者(admin205)」と「他者」の権限に変更は無いが、
グループ所属のユーザはtext.txtに書きこめなくなった。
=== 知っていると便利なオプション: -v もしくは --verbose@<fn>{chmod-v}
処理されたファイルごとに処理結果を出力する
//footnote[chmod-v][LinuxとWindowsのみ。正確にはGNU coreutilsのcpをインストールしている場合に利用できるオプション。@<B>{Unix伝統のchmodコマンドに -v オプションは無い}]
==== 実行例
//list[][][fontsize=xx-small]{
$ chmod -v 614 text.txt
//}
==== 実行結果
//list[][][fontsize=xx-small]{
$ chmod -v 614 text.txt
'test.txt' モードを 0644 (rw-r--r--) から 0614 (rw---xr--)へ変更しました
//}
-vがない場合は何も表示されない