「分かりそう」で「分からない」でも「分かった」気になれるLinuxコマンド辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるLinuxコマンド辞典

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(チェンジ・モード)」の略です。

スポンサーリンク


書籍画像