コマンドで、ファイルのパーミッションを変更するコマンドです。
パーミッションとは権限のことで、ファイルをけしたり、作ったり、変更したりするするときに、この設定が個々のファイルやディレクトリになされているので、それによってできたりできなかったりします。
パーミッション(permission)とは?
パーミッションには「Read(読み込み)権限」「Write(書き込み)権限」「Execution(実行)権限」の3つの概念があります。
Read: 4 Write: 2 Execute: 1
これらの権限の組み合わせを、1から7までの数字で表すことができます。
1: Execution 2: Write 3: Execution + Write 4: Read 5: Read + Write 6: Read + Execution 7: Read + Write + Execution
下記は、ファイルオーナ:joeで、644を割り振った例です。
// ファイルのパーミッションを調べる $ ls -la index.php // 出力。パーミッションは、664。 drwxr-xr-x@ 27 root wheel 918 Oct 7 2017 drwxrwxrwx 72 root wheel 2448 Oct 4 2017 -rw-r--r--@ 1 joe wheel 3065 Dec 7 2017 index.php
パーミッションを変更するのコマンド
パーミッションを変更するには、「chmod」コマンドを使います。
// index.phpのパーミッションを変更し、777にする chmod 777 index.php
注意点
ファイルのパーミッションを変更するには、現在のユーザがそのファイルのWrite権限を持っている必要があります。もしWrite権限がなければ、rootユーザとしてログインしなおすか、もしくは、sudoコマンドを利用します。
// sudo として、index.phpのパーミッションを変更し、777にする sudo chmod 777 fine_name.php
sudoを実行するには、sudoを実行できるグループに所属している必要があります、OSに依って、sudoグループや、wheelグループがデフォルトでsudo権限をもったグループとなっています。
複数のファイルのパーミッションを一度にまとめて変更する
たくさんのファイルがある時は、1ファイルずつchmodを実行するのは大変ですので、下記のコマンドでまとめて実行するのがお決まりのやり方です。
// 現在のディレクトリ配下のディレクトリの権限を一度に変更する find ./ -type d -exec chmod 755 {} + // 現在のディレクトリ配下のファイルの権限を一度に変更する find ./ -type f -exec chmod 644 {} +
find コマンドは、ファイル検索に利用するコマンドです。-typeオプションにより、d: directory、または、f: file を指定して、それぞれに適切な権限を割り振ります。開発現場に置いては、多くの場合、ファイルを「644(664)」かディレクトリを「755(775)」とすることが多いと思います。