Help us understand the problem. What is going on with this article?

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

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

  • 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」オプションをつけます

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした