【chmodコマンド】Unix/Linux系ファイル・ディレクトリ権限【使い方紹介】

Not image

ファイル・ディレクトリには「権限(パーミッション)」というものがあります。

普段PCを使ってファイルやディレクトリを操作している時に、権限というものは特に意識しないと思います。

しかしPCの根幹となるファイルやディレクトリなどには、簡単に中身を見たり・変更したりできないようになっている場合があります。

もちろん自分で作ったファイルやディレクトリにも、特定の権限を付与することができます。その権限を操作するUnix/Linux系のコマンドに「chmod」というものがあります。

今回は、どのように権限の確認・変更をするのかそれを操作するchmodコマンドについてをまとめていこうと思います。

chmodコマンドの使い方

ファイル・ディレクトリの権限(パーミッション)の確認方法

権限を確認する方法は、「ls」というコマンドを使います。

表示内容などは以下の通りです。

今回は、lsコマンドの読み方ではないのですがついでに見方をまとめておきます。

タイプ 権限(パーミッション) ハードリンク数 オーナー グループ バイト数 タイムスタンプ ファイル・ディレクトリ名
rw-r–r– 1 user_name staff 0 10 7 16:29 sample.txt
d rwxr-xr-x 2 user_name staff 64 10 7 16:30 sample_dir

タイプというのは「-」はファイル、「d」はディレクトリ、「l」はシンボリックリンクです。

今回見る部分は「権限(パーミッション)」という部分です。

上の「rw-r–r–」というものを例に見ていきましょう。この文字列は、3文字区切りに読んでいきます。

1~3文字目(例:rw-) 4~6文字目(例:r–) 7~9文字目(例:r–)
ファイルのオーナーに対する権限 ファイルのグループに対する権限 その他に対する権限

 

権限(パーミッション)の、「r」「w」「x」「-」があります。これらはなんなのかというのも、表にまとめましょう。

r w x
権限なし 読み出し権限 書き込み権限 実行権限

このような分類になります。

つまりsample.txtの権限の読み方(「rw-r–r–」)は以下のようになります。

  • ファイルのオーナーに対する権限は、読み出し・書き込み権限がある
  • ファイルのブループに対する権限は、読み出し権限のみある
  • その他に対する権限は、読み出し権限のみある

このようにして、他のファイル・ディレクトリの権限を確認することができます。

ファイル・ディレクトリの権限(パーミッション)の変更方法

変更方法には、二つの方法があります。一つ目はアルファベットで変更する方法。二つ目は数値で変更する方法です。

ここからはその二つの変更方法を、順に説明していこうと思います。

使用するコマンドは、「chmod」です。

変更方法:アルファベット編

アルファベットで指定する方は、数値よりわかりやすいかもしれません。なぜなら、「だれに・どんな権限を・どうする」というような指定を意味のあるアルファベットでするためです。

chmodコマンドの書式

chmod 誰に どうする どんな権限 対象ファイル名

chmod 誰に どうする どんな権限 ファイル・ディレクトリ名
ここは必ず「chmod」 u(ユーザー) +(権限付与) r(読み取り権限) ここは必ず「対象ファイル・ディレクトリ名」
ここは必ず「chmod」 g(グループ) -(権限除去) w(書き込み権限) ここは必ず「対象ファイル・ディレクトリ名」
ここは必ず「chmod」 o(その他) =(権限指定) x(実行権限) ここは必ず「対象ファイル・ディレクトリ名」
ここは必ず「chmod」 a(すべて) ここは必ず「対象ファイル・ディレクトリ名」

実行例

このようにアルファベットを使って権限を操作することができます。

変更方法:数値編

次は、数値を使って権限を変更する方法を紹介します。

数値で変更する方法は、3桁の数値でだれにどんな権限を付与するかを指定します。

例えば「chmod 777 ファイル名」というもので、「すべてのユーザー」に「読み取り・書き込み・実行権限」を付与することができます。

「777」の部分が肝で、一番左の桁は「オーナー」に対する指定・真ん中の桁は「グループ」に対する指定・「その他」に対する指定を表しています。

権限の決まり方は下の表のように対応しています。

r w x
権限なし 読み出し権限 書き込み権限 実行権限
0 4 2 1

今回の例では、「読み取り・書き込み・実行権限」が付与されています。つまり「4」「2」「1」を持っていて、それを足した「7」が全ての権限を表しているのです。

今回の指定
  • オーナーに対する指定で「7(全ての権限)」を付与
  • グループに対する指定で「7(全ての権限)」を付与
  • その他に対する指定で「7(全ての権限)」を付与

このように数値で、だれに・どんな権限を付与するかを指定しています。

実行例

まとめ

今回は普段意識しないファイル・ディレクトリの権限を変更・確認する、chmodコマンドの使い方を紹介しました。

意識しないため、いざ使うとなるとよくわからないで困るということが多々あります。

例えばファイルのアクセス権限がないということで、PCにエラーが出るということがあります。そのような時にファイル・ディレクトリの権限の存在を知っていれば、エラーがどこで出ているかの候補に「ファイル・ディレクトリの権限がないことが原因かもしれない」というものが一つ挙げられるます。

まあ、基本的には権限を扱う機会はそう多くはないと思いますが、いざという時のために今回の内容を頭の片隅にでも置いておくといいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です