Linux chmod: ファイル・ディレクトリのパーミッション(権限)を変更する

  • -

    シェア
  • ---

    LINEで送る
  • -

    はてなブックマーク
    ブックマーク
  • -

    pocket
  • -

    rss
他言語サイト
翻訳はみつかりませんでした
programing image

ファイル・ディレクトリのパーミッション(アクセス権限)を変更するときはchmodコマンドを使います。ファイルやディレクトリ情報の見方も解説します。

コマンド

ファイル・ディレクトリのアクセス権限のことをパーミッションと言います。パーミッションを変更するchmodコマンドは次のように使います。

chmod 777 target

数字が3つのところは、ログインユーザ,グループ,その他のユーザの権限を指定します。値は0-7まで用意されていて、次の表のようになります。

権限の値
0000すべての権限無し
1001実行
2010書き込み
3011書き込み・実行
4100読み込み
5101読み込み・実行
6110読み込み・書き込み
7111すべての権限あり

例えば、

ログインユーザ: 書き込み・読み込み・実行(すべて)
グループ: 読み込み・実行
その他のユーザ: 実行

の権限をsample.txtにつけたい場合は、

sample.txtの権限
chomod 751 sample.txt

で設定します。数値ではない別の指定方法がありますが、数値の方がまとめて指定できるうえに、3文字で設定するので一番楽です。

ディレクトリの権限を変更するとき、再帰的にディレクトリは以下のファイル・ディレクトリもまとめて変更するときは、オプション-Rを指定します。

sampleディレクトリとその配下をまとめて変更
chmod -R 751 sample

Linuxのファイル・ディレクトリ情報の見方

chmodで指定する権限を数値で行いました。その結果の表だけを示しましたが、意味までは説明していません。

Linuxでファイルやディレクトリがどのように表示されるのかを見ることで、指定する権限の意味も分かります。その内容を見てみましょう。

lsコマンドを実行すれば、ファイル・ディレクトリの内容が表示されます。

ファイル・ディレクトリの内容を見るコマンド
$ ls -l
$ -rw-rw-r-- 1 xxxxx yyyyy 1875611 Aug 16 23:57 zzzzzz

lsコマンドを実行すると、上のような結果が出ます。結果の内容を1つ1つ見ていきます

ファイルタイプ

-rw-rw-r-- 1 xxxxx yyyyy 1875611 Aug 16 23:57 zzzzzz

最初の1文字目はファイルのタイプです。

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

になります。

パーミッション(アクセス権限)

-rw-rw-r-- 1 xxxxx yyyyy 1875611 Aug 16 23:57 zzzzzz

次に、ファイルタイプから間をあけずに9文字の文字列が続きます。これはファイルのアクセス権限です。アクセス権限には、『誰が』『何をできるのか』が表示されています。

『誰が』は、

  • 所有者
  • グループ
  • 所有者以外のユーザー

です。所有者はファイルを作成したユーザーです。そして、ユーザーは何かしらのグループに属します。それが『グループ』になります。さいごは、ファイル作成者以外のユーザーです。

『何をできるのか』は、

  • ファイルの読み込み
  • ファイルの書き込み
  • ファイルの実行

です。書式で表示されている3者のユーザーに、それぞれ3つの権限を1文字で指定しています。だからアクセス権限の文字列は9文字になります。

パーミッションの指定方法は2つあります。表にまとめました。

権限の指定方法
権限アルファベット数値
読み込みr4
書き込みw2
実行x1

アルファベットと数値の2つです。アルファベットの記号は、

  • r: read
  • w: write
  • x: execute

からきています。数値は、2進数を3桁で表した時の値です。

並びが、

(読み込み)(書き込み)(実行)

なので、それぞれ1のフラグが立ったときの値になります。

001実行1
010書き込み2
100読み込み4

これに、『読み込みができて実行もできる』など、複数のパーミッションを与えたいこともあるので、数値は7まで用意されています。

対応表
0000---すべての権限無し
1001--x実行
2010-w-書き込み
3011-wx書き込み・実行
4100r--読み込み
5101r-x読み込み・実行
6110rw-読み込み・書き込み
7111rwxすべての権限あり

※『-』は権限無し(0)

この3文字のパーミッションが、所有者・グループ・その他のユーザーに割り当てられるので、

-rw-rw-r-- 1 xxxxx yyyyy 1875611 Aug 16 23:57 zzzzzz
  • 赤: 所有者
  • 緑: グループ
  • 青: その他のユーザー

のパーミッションになります。

パーミッションがないのにファイル・ディレクトリに対して操作を行うと、エラーが発生します。

$ Permission denied

ハードリンクの数

-rw-rw-r-- 1 xxxxx yyyyy 1875611 Aug 16 23:57 zzzzzz

パーミッションの次は、1つ半角スペースであけて、ハードリンクの数になります。

ここでは、くわしい話をすることはあまり意味がないので、

  • ファイルなら1
  • ディレクトリ直下のファイル・ディレクトリのだいたいの数

ぐらいでいいです。

ノートLinuxでは、ディレクトリ直下には『.』(カレントディレクトリ)『..』(親のディレクトリ)のハードリンクがあります。この2つはカウントされます。
また、ハードリンクの数なので、シンボリックリンクは数に含まれません。その意味で、正確な『ファイル・ディレクトリの数』にはなりません。

所有者とグループ

-rw-rw-r-- 1 xxxxx yyyyy 1875611 Aug 16 23:57 zzzzzz

ハードリンクの数の次は、1つ半角スペースであけて、『ファイルの所有者名』『ファイル所有者の所属グループ名』です。

所有者とグループの間は1つ半角スペースであけます。ファイルの所有者は『ファイルの作成者』です。

ファイルサイズ

-rw-rw-r-- 1 xxxxx yyyyy 1875611 Aug 16 23:57 zzzzzz

所有者とグループの次は、1つ半角スペースであけて、ファイルサイズです。単位はbyteでディレクトリの場合は0になります。

更新日時

-rw-rw-r-- 1 xxxxx yyyyy 1875611 Aug 16 23:57 zzzzzz

ファイルサイズの次は、1つ半角スペースであけて、ファイルの更新日時です。ディレクトリの場合は、ディレクトリの構成が変わったときの更新日時になります。

新規作成の場合は、作成日時になります。

ファイル名・ディレクトリ名

-rw-rw-r-- 1 xxxxx yyyyy 1875611 Aug 16 23:57 zzzzzz

さいごに、1つ半角スペースであけて、ファイル・ディレクトリ名です。

まとめ

chmodには-R以外にもオプションはありますが、使うことはほぼありません。その他の使い方もシンプルなので覚えるのはかんたんです。

最初に示した権限の値の表を早見表として使えばよいので、必死で覚えることもないでしょう。

最近ITカテゴリでよく読まれている記事です。
blog image

ドメイン取得の意味が分からない人へ。王道の方法を紹介します。

ドメインの登録業者を選ぶのに悩む必要はないです。サイトを簡単に早く公開するには全くいらないことで、むしろ邪魔です。『お名前.com』というサービスは必ず耳にします。そのお名前.comのメリットとデメリットと一緒に、ドメインの意味が分からない人が一番失敗しないドメインの取得方法を紹介します。

tadtadya.com

_

SNSでも記事を配信しています。
コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

この記事を気に入ったらぜひシェアも!!