Tips記事
» 2002年07月10日 00時00分 UPDATE

chmodのパーミッション変更で「u+w」などの文字列指定をしたい

[木田佳克,ITmedia]

 パーミッションを指定するコマンド「chmod」では、数値によるもの以外にも、文字列で指定することが可能だ。

 理解するのに早道なのは、まずはいろいろな指定例を見ることだろう。幾つかの例を挙げているので参考にしてほしい。

$ chmod u+w file

 まず最初は、単純な指定例だ。ファイル「file」に対してユーザーアクセス(u)に書き込み権限(w)を設定するという意味になる。

 ユーザーアクセスとは、ファイルのオーナーのことであり他にも表1のような分類がある。

・アクセスクラスとアクセス型(ファイルモード)
ユーザー グループ そのほかの
アクセス アクセス アクセス
r w x   r w x   r w x ← モード
1 1 1   1 1 1   1 1 1 ← 2進数
7     7     7   ← 10進数変換

上記での例:$ chmod 777 file

 次の例は、ホームディレクトリ(~/)に対し、ユーザーアクセス(ユーザー権限)のファイルとして自分以外のユーザーからのアクセスをすべて拒否させる指定になる。

$ chmod -R go-rwx ~/

 文字列での指定は、次に挙げる表1、2、3の順に記述するパターンになる。

表1■アクセスクラス
u ユーザーアクセス
g グループアクセス
o そのほかのアクセス
a 上記すべて
+
表2■演算子
+ 次のアクセス型を加える
- 次のアクセス型を除く
= 指定するアクセス型に設定する
+
表3■アクセス型(ファイルモード)
r 読み込み権限
w 書き込み権限
x 実行権限
X すでに実行権限がアクセスクラス先ファイルにある場合のみ有効

 最後に、上記の指定の中でも比較的分かりづらいものを、例題と共に紹介しておこう。

$ chmod o=g *

 上記は、カレントディレクトリのファイルすべて(*)を対象にして、ほかのアクセス(o)をグループアクセス(g)といっしょにする指定だ。

 次に挙げるのは、「file」と「file1」ファイルについて、ファイル所有者の書き込み権限を許可(u+w)、グループとほかのクラスの書き込み権限を解除、読み込み権限を許可(og+r-w)するという指定例になる。

$ chmod u+w,go+r-w file file1

 ほかにも、表3で挙げているアクセス型の「X」は、特殊なものの1つである。次のように指定するとワイルドカード(*)でありながら、txtファイルを対象外にすることができる。誤ってテキストファイルに実行権限を設定してしまうことが避けられるわけだ。

$ chmod go+rX *

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ