chmodを使用したファイルやディレクトリの権限変更
※AWSのCloud9のターミナルを使用
1.権限の確認
カレントディレクトリ内のファイルやディレクトリの権限を確認する場合
ls -l
コマンドを入力すると
drwxrwxr-x 4 ec2-user ec2-user 106 May 1 10:52 sample
-rw-r--r-- 1 ec2-user ec2-user 569 Apr 12 03:16 sample.txt
といった文字列が表示されます。
上段の
drwxrwxr-x 4 ec2-user ec2-user 106 May 1 10:52 sample
について説明します。
① 一番右の「sample」の部分
配下に存在するのファイルやディレクトリ名です。
② drwxrwxr-x
・最初の「d」の部分
| 種別 | 意味 |
|---|---|
| - | ファイル |
| d | ディレクトリ |
| l | リンク |
・以下のrwxrwxr-x
まず、「rwx、rwx、r-x」と3文字ずつ分けて考えます。
最初の3文字のrwxはファイルやディレクトリの所有者の権限
次のrwxはグループの権限
最後のr-xはその他のユーザーの権限
となります。
「r」「w」「x」「-」の意味は以下の通り
| 種別 | 意味 |
|---|---|
| r | 読み取り |
| w | 書き込み |
| x | 実行 |
| - | 許可なし |
例:「r-x」は読み取りと実行のみ可能、書き込みはできません。
③ drwxrwxr-xの右の「4」
ハードリンク数
④ ec2-user ec2-user
ec2-userが2つあってわかりづらいですが、
最初の「ec2-user」は所有者名
右の「ec2-user」はグループ名
⑤ May 1 10:52
更新日時です。
上記説明を組み合わせると、
drwxrwxr-x 4 ec2-user ec2-user 106 May 1 10:52 sample
は、「sample」というディレクトリで、所有者は「ec2-user」、所有グループは「ec2-user」、所有者と所有グループは読み取り、書き込み、実行すべて許可、その他のユーザーは読み取り、実行のみ許可、更新日時は5月1日10:52となります。
2.権限変更
「chmod」を使用した権限変更
※chmodは change modeの略です
① コマンド
$ chmod 751 sample
というコマンドを使用します(変えたい権限によって数値が変わります)。
② 数値について
上記の「751」は「7」「5」「1」と分けて考えます。
最初の「7」は所有者の権限、次の「5」はグループの権限、最後の「1」はその他のユーザーの権限です。
| 権限 | 数字 |
|---|---|
| r | 4 |
| w | 2 |
| x | 1 |
この表を参考に、与えたい権限の数字を足して表します。
例えば、読み取りと実行のみ与える場合は
4(r) + 1(1) = 5
となります。
まとめると
| 権限 | 数値 |
|---|---|
| --- | 0 |
| --x | 1 |
| -w- | 2 |
| -wr | 3 |
| r-- | 4 |
| r-x | 5 |
| rw- | 6 |
| rwx | 7 |
となります。
この数字を組み合わせ、sampleというディレクトリについて、所有者には全ての権限(7)、グループには読み込みと実行(5)、その他のユーザーには実行のみ(1)を与えたい場合は
chmod 751 sample
とコマンドを入力します。
その後、再度
ls -l
を実行し、権限を確認しましょう。