【画像で解説】chmod 400とは何か?意味やファイルのアクセス権限の変更方法(数値とシンボルモードの違い)

unix-bash-what-is-chmod-400 Command
記事内に広告が含まれていることがあります。

AWSでEC2などのインスタンスを作成し接続するときに以下のようなコマンドを実行します。

$ chmod 400 [pemファイル名].pem

このchomd 400が何を意味しているかを解説しています。

chomdとは?

chmodとはchange modeの略で、ファイルやディレクトリのアクセス権限を変更するためのコマンドです。

$ chomd [オプション] [アクセス権] [ファイル/ディレクトリ]

・Unix系のOSで使えるコマンド。
  ※windowsでは使えない。→ gitbashで使える。
・アクセス権の変更を行う

アクセス権の設定とは?

アクセス権を設定すると、例えば以下のように、「このファイルは読み取り専用に設定されています。」と表示されます。

このファイルは読み取り専用に設定されています。

逆に、読み込めない権限のファイルを、誰もが読み込めるように変更するのもアクセス権の変更です。

400とは?

chmodの後ろで指定している「400」とは、誰にどのような権限を与えるかの指定になります。

400のアクセス権限の内容
  • PC所有者にのみ読み込み権限を与える。
  • 所有者以外は読み込めない。
  • 所有者も書き込み、実行ができない。

プライベートキーなど、重要なファイルを誤って中身を変更しないようにするときに使います。

コマンドで何が実行されているか?

chomod 400コマンドでどういった処理が実行されているかをビジュアルで見ると以下のようになります。

$ chmod 400 test.txt

これは、デスクトップにあるtest.txtファイルに所有者のみの読み込み権限を与えるものです。

ファイルのプロパティの属性の□読み取り専用(R)にチェックが入る処理になります。

chmod 400 test.txtの実行内容イメージ

アクセス権限の種類

アクセス権限の設定で指定できるユーザーや権限は複数あります。

設定できるユーザーは3種類

 ①所有者、②グループ、③その他(①、②以外のすべて)
 
 ユーザーの指定は数値の桁で行います。

ユーザーと設定する桁

 ①所有者: 3桁目
 ②グループ:2桁目
 ③その他: 1桁目

グループはファイル/フォルダ毎に別途設定します。

権限の種類は4種類

①読み取りのみ、②書き込み、③実行のみ、④すべて禁止
 
それぞれの権限に数字が割り振られています。

権限の種類と数値

 ①読み取りのみ:4
 ②書き込み: 2
 ③実行のみ: 1
 ④すべて禁止: 0

  • 読み取りのみ = 書き込み☓、実行☓
  • 書き込み = 読み取り◯、実行☓
  • 実行のみ = 読み取り☓、書き込み☓

権限の組み合わせ

実際に各ユーザーに対して権限を割り振る場合は、権限を組み合わせ、3つの数値を足し合わせた数値を指定します。

権限の組み合わせ
  • すべて許可:7
  • 読み取り&書き込み:6
  • 読み取り&実行:5
  • 書き込み&実行:3
  • 書き込み: 2
  • 実行のみ: 1
  • すべて禁止: 0

例えば、読み取り専用のチェックマークを外したい場合は、2 or 3 or 5 or 7を指定します。(書き込みの許可を含む)

使用例

$ chmod 740 ファイル名


 ・所有者:すべて許可
 ・グループ:読み取りのみ許可
 ・その他:すべて禁止

注意点:桁数により設定対象が変わる

2桁指定の場合

2桁で指定する場合、所有者の権限がなくなり、グループと、ユーザーのみの設定になります。

chmod 33 = chmod 033 と同じになります。

$ ls -l
-r-x-wx-wx  1 root  1796141739  0  1 27 10:33 hello.txt

#権限変更
$ chmod 33 hello.txt

#確認
$ ls -l
-----wx-wx  1 root  1796141739  0  1 27 10:33 hello.txt

1桁指定の場合



1桁のみの指定の場合は、所有者とグループの権限がなくなります。

chmod 7 = chmod 007 と同じになります。

$ ls -l
-----wx-wx  1 root  1796141739  0  1 27 10:33 hello.txt

#権限変更
$ chmod 7 hello.txt

#確認
$ ls -l
-------rwx  1 s01386  1796141739  0  1 27 10:33 hello.txt

権限の指定方法

権限の指定方法は2種類あります。

アクセス権限の指定方法

①数値モード
②シンボルモード


これまでに解説してきた3桁の数値で指定する方法が①数値モードになります。
これらの数値を記号(②シンボルモード)に置き換えることもできます。

シンボルモードとは?

シンボルモードは権限を記号で付与する記述方法です。
個々の条件を+/-の記号で付与したり外すことができます。

シンボルモードの権限の種類

記号権限
r読み込み
w書き込み & 削除
x実行

シンボルモードのユーザー指定

記号権限
u所有者
gグループ
oその他
aすべて(u,g,o)。省略も同じ

シンボルモードの権限の付与

記号権限
+後述の権限を付与
後述の権限を削除
=後述の権限にする

シンボルモードの使い方

シンボルモードでアクセス権限を指定するときは、ユーザーを指定して権限を指定します。

$ chmod [ユーザー][記号][権限][ファイル]
#所有者に書き込み権限を付与
chmod u+r test.txt


ユーザーを複数指定する方法

シンボルモードでは権限を付与するユーザーをカンマでつないで複数指定することができます。

$ chmod [ユーザー][記号][権限],[ユーザー][記号][権限][ファイル]
ユーザーを複数指定するときの注意点
  • カンマでつなぐ
  • カンマの後にスペースを入れない
#所有者:すべて(rwx)
#グループ:読み・書き(rx)
#その他:読み込みのみ(r)

chmod u+rwx,g+rx,o+r test.txt
タイトルとURLをコピーしました