1. Qiita
  2. 投稿
  3. Linux

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

  • 118
    いいね
  • 4
    コメント
に投稿

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

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

$ 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文字目はファイル種別を表しています。

  • - ファイル
  • d ディレクトリ
  • l シンボリックリンク

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

  • r 読み取り
  • w 書き込み
  • x 実行
  • - 権限なし

上記から「-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 モード 対象ファイル名

モードの数字について説明します。
r(読み取り)・・・4
w(書き込み)・・・2
x(実行)・・・1
上記の合計値を「所有者」「所有グループ」「その他」の順で入力することでパーミッションを変更することができます。
要するに上記の「764」は
「所有者」に対して「読み取り」「書き込み」「実行」を、
「所有グループ」に対して「読み取り」「書き込み」を、
「その他」に「読み取り」を付与しています。

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

合計値を考えたり、4がどれで2がどれかど忘れした時のために
パーミッションをアルファベットで指定することもできます。
こちらの方が直感的で好む方もいるかと思います。

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

$ 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

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

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

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

Comments Loading...