chmod
何するコマンド?
ファイルやディレクトリのアクセス権を変更するときに使うコマンド
書き方
chmod [オプション] [アクセス権] [対象のファイルやディレクトリ]
オプション
| オプション | 説明 |
|---|---|
| -c | 実際に変更された場合は詳細を表示する。変更されない場合(644から644へ変更した場合など)は沈黙 |
| -f | エラーメッセージをあまり表示しない |
| -v | 処理結果をじっくりはっきり詳細に出力する |
| -H | 「-R」と併用して、対象として指定したファイルがシンボリックリンクの場合、そのリンク先も参照する |
| -L | 「-R」と併用して、シンボリックリンクのリンク先も参照する |
| -P | 「-R」と併用して、シンボリックリンクのリンク先は参照しない |
| -R | サブディレクトリ内も再帰的に設定する。ファイル、ディレクトリ問わずなので、いまいち使えない |
補足事項
「chmod」コマンドを使う上での肝は、設定するアクセス権(パーミッション)の指定方法です。
「chmod」の[アクセス権]の部分は「『誰』に『何』を『どうする』」を指定してやる必要があります。
アクセス権を指定する対象には
・自分
・仲間
・他人
の3種類があります。
そして設定するアクセス権には
・読み取り権限:見ていーよ
・書き込み権限:変更していーよ
・実行権限:動かしていーよ
の3種類があります。
さらに、それぞれの対象に対する権限付与の操作として
・権限をくっつける
・権限を取り上げる
・権限を置き換える
の3つの操作ができます。
これらの組み合わせをサクっと指定してやってください。
「えっ?そんなのサクっと指定できるの?」と疑問を覚えるかもしれませんね。
それをサクっと指定するための工夫として、それぞれの対象や権限、操作には目印が割り当てられているのです。
具体的には以下のような感じです。
■対象
・自分:「u」もしくは8進数3桁の1番左の桁
・仲間:「g」もしくは8進数3桁の真ん中の桁
・他人:「o」もしくは8進数3桁の右の桁
・全員:「a」8進数表記時は指定不可
■権限
・読み取り権限:「r」8進数表記時は「4」
・書き込み権限:「w」8進数表記時は「2」
・実行権限:「x」8進数表記時は「1」
■操作
・権限をくっつける:「+」
・権限を取り上げる:「-」
・権限を置き換える:「=」
これらを駆使してアクセス権を指定するのです。
例えば自分に実行権限をつけたい場合は
chmod u+x 【対象のファイル】
のように指定します。
自分「u」に実行権限「x」をくっつける「+」指定です。
逆に、他人様に見られると恥ずかしい日記なんかには
chmod o-r 【対象のファイル】
のように指定します。
他人「o」の読み取り権限「r」を取り上げる「-」指定です。
「えー、そんなチマチマしたの面倒くさーい。全部一度に設定したーい」という人もいるでしょう。
そんなときは8進数3桁で指定することで、すべての権限を一度に設定できます。
例えば
chmod 644 【対象のファイル】
と指定すると「自分は読んで書いて良いよ。他の人は読むだけね」な指定になります。
この「644」の指定は
自分:1番左
仲間:真ん中
他人:1番右
に対して
自分:1番左:読み取り権限(4)+書き込み権限(2)
仲間:真ん中:読み取り権限(4)
他人:1番右:読み取り権限(4)
と指定していることになるのです。
ちなみに「俺たちゃ自由人さ。人類みな兄弟、オールフリーでいこーぜー」とアホなことをしたい場合には
chmod a=rwx 【対象のファイル】
もしくは
chmod 777 【対象のファイル】
と指定すればOKです。
全ユーザにすべての権限が付与されます。
対象や権限を指定しないで
chmod [オプション] [アクセス権 or 対象のファイル]
と打った場合、怒られます。
あと余談ですが「chmod」は「change mode(チェンジ・モード)」の略です。
