沖縄が日本のシリコンバレーのようになってほしいと願うiOSエンジニアのブログ

世のエンジニアの役に立つようなブログにしたいなぁ

chmod - パーミッション(所有権)の変更

chmod

機能

ファイル・ディレクトリのアクセス権限を変更する。ワイルドカードによる複数ファイルの指定も可能。

形式

chmod (option) [a+w] [file name]

chmod (option) [644] [file name]

オプション

オプション 機能

* c 実際にアクセス権が変更された場合のみ、処理結果を詳細に出力する
o changes
* v 全てのファイルに対して処理結果を詳細に出力する
o verbose
* f ほとんどのエラーメッセージの出力を抑える
o reference=RFILE 数値モードの代わりに指定したファイル(RFILE)のアクセス権を使う
* R ディレクトリを変更する際に、中のファイルやサブディレクトリも再帰的に変更する
o recursive
o version バージョン情報を出力する
o help 使用方法を表示する

権限記述方法

ユーザー表記  

u 所有者

g グループ

o その他

a 全て

権限指定  

1. 後述権限の付加
2. 後述権限を削除

= 後述権限に変更

権限表記  

r 読みだし権限

w 書き込み権限

x 実行可能権限

s セットID

t スティッキー・ビット

権限記述方法(数字表記)

文字 数値 内容

r 4 読みだし可

w 2 書き込み可

x 1 実行可能

数字の組み合わせ

文字 数値 内容

rwx 7 (4+2+1) 読み出し可+書き込み可+実行可能

rw- 6 (4+2) 読み出し可+書き込み可

r-x 5 (4+1) 読み出し可+実行可能

* wx 3 (2+1) 書き込み可+実行可能

コマンド例

chmod a+w file1 全てのユーザーに書き込み権限を付加

chmod 644 file2 file2を644(rw-r--r--)に変更

chmod 701 *.cgi 拡張子がcgiのファイルを全て701(rwx-----x)に変更

                                                                                                                                              • -


chmod - パーミッションの変更

chmodの基本的な使い方は以下のようになります。

% chmod u+w test.txt ユーザー(所有者)が書き込み可能にする。
% chmod g-r test.txt グループが読み込みできないようにする。
% chmod o+x test.txt 他のユーザが実行可能にする。


 このように「(対象ユーザ)+/-(与える権限の種類)」で指定します。+で権限を与え、-で権限を削除します。各記号の意味は以下のようになります。

□対象ユーザー
u ・・・ 所有者
g ・・・ グループ
o ・・・ その他のユーザ

□権限
w ・・・ 書き込み可
r ・・・ 読み込み可
x ・・・ 実行可

 また、以下のようにビットを8進数で表して指定することができます。

% chmod 644 test.txt 権限を -rw-r--r-- にします。
% chmod 755 test.txt 権限を -rwxr-xr-x にします。


 数字によるパーミッションの指定は以下のようになります。
0 権限なし
4 読みこみのみ可能
5 読み込みと実行が可能
6 読み書き可能
7 読み書きおよび実行可能

 この数字をユーザ、グループ、他のユーザの順に記述してパーミッションを変更させます。はじめの例のようにアルファベット記号で指定しても、後の例のように数字で指定しても結果は同じです。玄人はいちいちアルファベット記号を入れるのが手間ので数字を暗記してしまっています。実務レベルのスキルを付けたいという方は覚えてください。

 なおパーミッションには読み書き実行以外の特殊な権限がありますが、当面の間は覚えなくても大丈夫です。