chmodの「暗記法」についてはすでに解説しましたが、権限を変更する方法がもう1つあります。ただし、数学に強くないユーザーにとっては、最初はすこし複雑に感じられるかもしれません。
sneakers.txtの権限は、最初次のようになっていました(ls -l sneakers.txtと入力します)。
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
数値による設定では、各ユーザーグループ(所有者、グループ、その他のユーザー)に対するそれぞれの権限を、次のように数値で表します。
r = 4
w = 2
x = 1
- = 0
各ユーザーグループに対する権限に対応する値を足し合わせ、その合計を使って権限を設定します。
sneakers.txtの権限を数値で表すと、次のようになります。
- (rw-) (rw-) (r--) | | | 4+2+0 4+2+0 4+0+0 |
所有者に対する合計は6、グループに対する合計は6、そして、その他のユーザーに対する合計は4となります。この場合、このファイルに対する権限を数値で表すと、664となります。
ここで、sneakers.txtへの権限を、グループ(group)のメンバーに対しては書き込み権限は与えずに読み込み権限だけを与えるように変更するとします(Figure 10-16を参照)。この場合、現在のグループの権限を表す数値から2を引いて、書き込み権限を削除しなければなりません。
権限を表す数値は6と4と4、つまり644となります。
そこで、次のように入力します。
chmod 644 sneakers.txt |
ファイルを一覧表示(ls -l sneakers.txt)して、変更の結果をチェックしてみましょう。
-rw-r--r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
予定どおり、sneakers.txtへのグループの書き込み権限が削除されました。グループの書き込み権限を元に戻すには、2番目の権限を表す数値にw(2)を加算した数値を設定します。
chmod 664 sneakers.txt |
666と777に注意 | |
---|---|
権限を666あるいは777にすると、誰でもファイルやディレクトリの読み込みと書き込みができるようになります。つまり、このような設定では機密ファイルを不正に操作できることになります。したがって、通常は、こうした設定は避けるべきでしょう。 |
以下に、よく使われる設定の数値と意味を一覧にしておきましょう。
-rw-------(600)—所有者(owner)だけに読み込みと書き込みが許可されています。
-rw-r--r--(644)—所有者(owner)には読み込みと書き込みが許可されていますが、グループ(group)とその他のユーザ(others)には読み込みだけが許可されています。
-rwx------(700)—所有者(owner)だけに読み込み、書き込み、実行が許可されています。
-rwxr-xr-x(755)—所有者(owner)には読み込み、書き込み、実行が許可されていますが、グループ(group)とその他のユーザ(others)には読み込みと実行だけが許可されています。
-rwx--x--x(711)—所有者(owner)には読み込み、書き込み、実行が許可されていますが、グループ(owner)とその他のユーザ(others)には実行だけが許可されています。
-rw-rw-rw-(666)—すべての人がこのファイルの読み込みと書き込みを許可されます。危険な設定です。
-rwxrwxrwx(777)—すべての人が読み込み、書き込み、実行を許可されます。これは非常に危険な設定です。
次に、ディレクトリに対してよく使われる設定をあげます。
drwx------(700)—所有者(owner)だけに、このディレクトリでの読み込みと書き込みが許可されています。
drwxr-xr-x(755)—すべてのユーザーにディレクトリの読み込みが許可されていますが、内容の変更は所有者(owner)だけに許可されています。