本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「chmod」コマンドです。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ファイルのパーミッション(許可属性)を変更するための「chmod」コマンドです。
ファイルやディレクトリにアクセスできるかどうかは、ファイルの「パーミッション(許可属性)」によって決まります。このパーミッションを変更するコマンドが「chmod」です。
なお、現在ファイルやディレクトリに設定されているパーミッションは、「ls -l」コマンドや「stat」コマンドで確認できます([参考]“応用力”をつけるためのLinux再入門 第9回:「ls -l」コマンドの表示からファイルの属性を理解しよう)。
chmod [オプション] モード ファイル1 ファイル2 ファイル3……
(指定したモードに従ってファイルのパーミッションを変更する)
※[ ]は省略可能な引数を示しています
chmodコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-R | --recursive | ファイルとディレクトリを再帰的に変更する |
--preserve-root | 「/」に対する再帰的な操作は行わない | |
--no-preserve-root | 「/」を特別扱いしない(デフォルト) | |
--reference=参照ファイル | 参照ファイルと同じパーミッションにする | |
-v | --verbose | 処理した内容を出力する |
-c | --changes | 変更が行われた場合のみ処理内容を出力する |
-f | --silent、--quiet | ほとんどのエラーメッセージを出力しない |
ファイルやディレクトリのパーミッションは、「r(読み出し可能)」「w(書き込み可能)」「x(実行可能)」の3つのアルファベットで表します。
パーミッションを与える対象は、「所有者」「所有グループ」「それ以外(他人)」の3つに分かれています。「ls -l」コマンドで確認すると、「rw-rw-r--」のように9文字のアルファベットで表示されます。
「ls -l」コマンドで表示される内容の先頭文字はファイルの種類で、ディレクトリは「d」、シンボリックリンクは「l」、通常のファイルは「-」が表示されます。通常のデータファイルであれば、「-rw-rw-r--」のように表示されます。
パーミッションを数値で表す場合は、「読み出し可能(r)=4」「書き込み可能(w)=2」「実行可能(x)=1」となります。
パーミッション | 数値 | 意味 |
---|---|---|
r | 4 | 読み出し可能(ディレクトリの場合は、ファイル一覧の表示の許可) |
w | 2 | 書き込み可能(ディレクトリの場合は、ファイルの追加/削除の許可) |
x | 1 | 実行可能(ディレクトリの場合は、cdコマンドでそのディレクトリに入れるか) |
- | 0 | 許可がない |
パーミッションと数値の対応 |
例えば、読み出しと書き込みが可能な場合は「6」(=4+2)、全ての操作が可能であれば「7」(=4+2+1)、全ての許可がない場合は「0」となります。また、「rw-rw-r--」「rwxr-xr-x」は、それぞれ以下のように「664」「755」と表すことができます。
rw-(6)rw-(6)r--(4)= 664
rwx(7)r-x(5)r-x(5)= 755
実際には、これらとは別の特別な属性も存在するので、statコマンドでは「0644」「0755」のように4桁で表示されます。
Copyright © ITmedia, Inc. All Rights Reserved.