0と1でできたブログ

プログラミングなどの個人的なメモ。他の人の参考になれば嬉しいです。

chmodコマンドについてのメモ

お知らせ: 新しくホームページを作りました! これから記事を増やしていくつもりなので, 良かったら見て下さい!! ホームページはこちらになります.

chmodについてのメモ。

シェルスクリプトを書いたりした時には、実行可能権をつけていないと、実行できません。そんな時に使うのが、chmodです。今回は、その使い方を解説してみたいと思います。

まず、ファイルに対して、どのような権限が存在するのかについて。基本は以下の3つです。

  • r ・・・ 読み込み
  • w ・・・ 書き込み
  • x ・・・ 実行

そして、その権限を持つ対象として、以下の4つがあります。

  • u ・・・ 所有者
  • g ・・・ グループ
  • o ・・・ その他
  • a ・・・ 上の3つ全て

ファイルがどのような状態になっているのかは、以下のコマンドを入力することで確認できます。

$ ls -l

では試しに、見てみましょう。まず、Terminalを開いて、適当なフォルダに移動してください。(どこでもいいです。)
そして、そこにすでにファイルがあればそのまま上のコマンドを打ってもいいですし、試しに何かファイルを作って確認してもいいです。
ここでは、新しく作ることにしましょう。以下のようにコマンドを打ってみます。

$ touch a

これで、今自分がいるフォルダに「a」というファイルが出来ました。
では、ls -lと打ってファイルの状態を確認してみましょう。以下のようになっているはずです。

-rw-r--r-- [いろいろかいてある] a

大事なのは、-rw-r--r--の部分です。一番左の「-」のところは、それがファイルかフォルダかを表します。今回はファイルなので、「-」となり、フォルダの場合は「d」となります。
そのハイフンから右の9個が権限を表す文字列です。3つずつのまとまりで、u(所有者)、g(グループ)、o(その他)の順です。つまり上の例では、

  • u ・・・ rとw、つまり読み込み可能と書き込み可能
  • g ・・・ r、つまり読み込みのみ可能
  • o ・・・ r、つまり読み込みのみ可能

となります。 実行可能権をつけるために、以下の様なコマンドを打ってみましょう。

$ chmod u+x a

そして、ls -lで確認すると、

-rwxr--r--

のようになっているはずです。さっきとの違いは、左から4つめのハイフンが、「x」になっています。さっきのコマンドは、u(所有者に)+(権限を与える)x(実行の)という意味になっていて、実行可能権が付きました。逆に権限を無くしたい場合は、以下のようにします。

$ chmod u-x a

ここでの「u」は、「g」や「o」と交換可能です。また、「a」にすることで、すべての対象に権限をつけたり、消したりすることができます。

最後にchmodの引数を簡略化したものを説明します。権限を数字を使って表します。

権限の種類 数値
r 4
w 2
x 1

つまり、これを組み合わせて、下の表のような表し方ができます。

権限の組み合わせ 数値
rwx 7(=4+2+1)
rw- 6(=4+2)
r-x 5(=4+1)
-wx 3(=2+!)
r-- 4
-w- 2
--x 1
--- 0

上の表を見ればわかる通り、数値が4,2,1だったのは、8パターンがかぶらずに表せるようにするためです。たぶん。

これを使うとchmodが以下のように使えます。

$ chmod 755 a

ここでいう"755"は、

"755"="rwxr-xr-x"

という意味です。

では最後に、今回作ったファイルを消しましょう。

$ rm a

とすれば「a」というファイルは削除されます。

以上でchmodの説明を終わります。


記事とは関係ないのですが,webアプリケーション開発の練習で,まとめのまとめサイトを作ってみたので,よろしければ見てみてください. (いろんなまとめのまとめ, 恋愛・結婚の2chまとめサイトのまとめ)