Edited at

chmod? chown? よくわからんって人のための、ファイル権限系まとめ

More than 1 year has passed since last update.


今回取り上げるコマンドと簡単な概要



  • chmod: (change mode)
    ファイルやディレクトリのアクセス権(パーミッション)を変更する

chmod <パーミッション> <ファイルorディレクトリ>



  • chown: (change owner)
    ファイルやディレクトリの所有者を変更する

chown <[所有者]or[所有者:グループ]> <ファイルorディレクトリ>



  • chgrp: (change group)
    ファイルやディレクトリのグループを変更する

chgrp <グループ> <ファイルorディレクトリ>


前提知識

今回取り上げるファイル権限系のコマンドは、すべて「ch〇〇〇」というスペルになっている。

これはすべて上のカッコ書きで書いたように、change 〇〇〇〇 の略になっている。

この意味も覚えておいたほうが何がどれだったかわかりやすいと思う。


アクセス権(パーミッション)の種類

chmodによって、ファイルやディレクトリのアクセス権を変更する。

と言っても、アクセス権が何かがわからないと話が進まない。

アクセス権(パーミッション)の表し方には、3桁の数字で表す方法と、9文字の記号で表す2種類がある。

777」や「rwxrwxrwx」 という風に表される。

ちなみに好きなディレクトリで、lsに-lオプションをつけると以下のファイルやディレクトリのパーミッションの確認ができる。

$ ls -l

drwxr-xr-x 2 user_name group 68 8 30 15:53 common
-rw-r--r-- 1 user_name group 0 8 30 15:53 index.js
-rw-r--r-- 1 user_name group 0 8 30 15:53 index.php


パーミッションの書き方

上の例での「drwxr-xr-x」に注目してほしい。

まず最初の文字の「d」、これはディレクトリであることを意味する。

ただのファイルであれば、「-」で置き換えられる。

  

そのあとの9文字がパーミッションというアクセス権の詳細である。

rwxr-xr-x

この9文字を3文字づつ区切って読んでみると

「rwx」,「r-x」,「r-x」

これらがそれぞれ前から、「所有者の権限」,「グループの権限」,「その他の権限」である。

  

ちなみに、ls -lでパーミッションの横にそのファイル(ディレクトリ)の所有者とグループが記述される。

以下の場合、user_name と group である。

$ ls -l

drwxr-xr-x 2 user_name group 68 8 30 15:53 common
-rw-r--r-- 1 user_name group 0 8 30 15:53 index.js
-rw-r--r-- 1 user_name group 0 8 30 15:53 index.php

  

それぞれの文字が何を示すかというと、以下のようになっている。

- r : (read) 読み込み権限

- w : (write) 書き込み権限

- x : (execute) 実行権限

なので、それぞれを組み合わせて

rwxr-xr-x

ならば、所有者はすべて、グループとその他は読みと実行のみという意味になる。

  


数字での省略記法

記号
数字
意味

r
4
読み込み権限

w
2
書き込み権限

x
1
実行権限

として3つを合計した数値で表す。

よって、755 ならば「rwxr-xr-x」と同じ意味になる。

  


アクセス権の対象

アクセス権の対象も記号で表される。chmodなどで使うので覚えておきたい。

記号
意味

u
所有者(user)

g
グループ(group)

o
その他(other)

a
上の3つすべて(all)

この記号もそれぞれカッコ内の略語であるので、それを意識すると覚えやすい。

  

  


いよいよここからが本題の使い方のお話。


chmodの使い方

基本

chmod <パーミッション> <ファイルorディレクトリ>

一番簡単な使い方は、パーミッションの部分に数字での記法で記述することである。

chmod 755 <ファイルorディレクトリ>

既存のものに付け加える場合は、記号の記法が使いやすい。

chmod g+x <ファイルorディレクトリ>

g+x」とは、g(グループ)に x(実行権限)を +(加える)という意味になる。

逆に権限をなくす場合は、「g-x」とやればいい。


ディレクトリごと権限を変更したい場合

chmod -R 755 <ディレクトリ>

のように「-R」のオプションをつける。

  


chownの使い方

基本

chown <[所有者]or[所有者:グループ]> <ファイルorディレクトリ>

dataフォルダの所有者をsatouに変更する

chown satou data

dataフォルダの所有者をsatouにグループをstaffにする

chown satou:staff data


ディレクトリごと権限を変更したい場合

chmodと同じように、「-R」オプションをつける。

  


chgrpの使い方

基本

chgrp <グループ> <ファイルorディレクトリ>

dataフォルダのグループをstaffにする

chgrp staff data


ディレクトリごと権限を変更したい場合

chmodと同じように、「-R」オプションをつける。