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

Linuxの権限確認と変更(chmod)(超初心者向け)

More than 1 year has passed since last update.

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

以下のようなコマンドの謎の数字や

$ chmod 777 hoge.txt

以下のような一覧のrやwなど謎の英文字について

-rw-r--r--  1 user user      9  1月 1 00:00 hoge.txt

パーミッションに関するコマンドの読み方や変更の方法をまとめてみる。
誰かの役に少しでも立てば・・・
そしてたまに忘れる自分へ・・・・

パーミッションの確認

Linuxコマンドでカレントディレクトリ内のファイルやディレクトリの情報を確認する。

$ ll

または

$ls -l

上記のコマンドを実行すると、以下のような一覧が表示されるかと思います。

-rw-r--r--  1 user group      9  1月 1 00:00 hoge.txt
drwxr-xr-x  6 user group  20480  1月 1 00:00 ダウンロード

パーミッションの読み方

「-rw-r--r--」や「drwxr-xr-x」の先頭の謎の10文字についてですが、
最初の1文字目はファイル種別を表しています。
-rw-r--r--

種別 意味
- ファイル
d ディレクトリ
l シンボリックリンク

2文字目から4文字目はファイルの所有者に対する権限を表し、
5文字目から7文字目はファイルの所有グループに対する権限を表し、
8文字目から10文字目はその他に対する権限を表しています

上記から-rw-r--r--は、
「ファイル種別」が「ファイル」であり、
「所有者」に「読み取り」と「書き込み」の権限があり、
「所有グループ」に「読み取り」の権限があり、
「その他」に「読み取り」の権限があることを示しています。

drwxr-xr-xは、
「ファイル種別」が「ディレクトリ」であり、
「所有者」に「読み取り」と「書き込み」と「実行」の権限があり、
「所有グループ」に「読み取り」と「実行」の権限があり、
「その他」に「読み取り」と「実行」の権限があることを示しています。

アクセス権限の変更

続きましてアクセス権限を変更する方法について記載します。

パーミッションの変更にはchmodコマンドを使用します。

数値で指定する

$ ls -l 
-rw-r--r--  1 user group      9  1月 1 00:00 hoge.txt
$ chmod 764 hoge.txt
$ ls -l
-rwxrw-r--  1 user group      9  1月 1 00:00 hoge.txt

上記のコマンドはhoge.txtに対してパーミッションの確認→変更→確認を行っています。

$ chmod 764 hoge.txt

に関して説明していきます。

ファイルのパーミッションの変更は以下の通りコマンドを実行すれば可能です。

chmod モード 対象ファイル名

モードの数字について説明します。

モード(数字) モード(アルファベット) 権限
4 r 読み取り
2 w 書き込み
1 x 実行

上記の合計値を「所有者」「所有グループ」「その他」の順で入力することでパーミッションを変更することができます。
要するに上記の「764」は
「所有者」に対して「読み取り」「書き込み」「実行」を、
「所有グループ」に対して「読み取り」「書き込み」を、
「その他」に「読み取り」を付与しています。

アルファベットで指定する

パーミッションをアルファベットで指定することもできます。
こちらの方が直感的で好む方もいるかと思います。

まずは数値で指定した時と同じ内容をアルファベットで指定する方法で実行してみます。

$ ls -l
-rw-r--r--  1 user group      9  1月 1 00:00 hoge.txt
$ chmod u+x hoge.txt
$ ls -l
-rwxr--r--  1 user group      9  1月 1 00:00 hoge.txt
$ chmod g+w hoge.txt
$ ls -l
-rwxrw-r--  1 user group      9  1月 1 00:00 hoge.txt

アルファベットでパーミッションを変更するには以下の通りにコマンドを実行します。

chmod 変更対象 変更方法 変更内容 対象ファイル

例に以下のコマンドで確認していきます。

$ chmod u+x hoge.txt

uが変更対象、+が変更方法、xが変更内容となります。

変更対象については以下のいずれかになります。

変更対象 意味
u ユーザー
g グループ
o その他
a すべて

変更方法については以下のいずれかになります。

変更方法 意味
= 指定した権限にする
+ 指定した権限を付与する
- 指定した権限を除去する

変更内容については上記でも記した通りです。

変更内容 意味
r 読み取り
w 書き込み
x 実行

なので、

$ chmod u+x hoge.txt

はhoge.txtに対して所有者の実行権限が付与しています。

もちろん複数指定もできます。

$ chmod go+w hoge.txt

$ chmod a-wx hoge.txt

と実行することもできます。

数値で指定とアルファベットで指定のどちらを使用するかは、
好みな方、間違わない確実な方を使用していきましょう。

以上になります。
最後までお読みいただきありがとうございました。

shisama
Node.js Core Collaborator. 関西Node学園Organizer.
https://shisama.dev
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