【UNIX】パーミッション別コマンド実行結果まとめ
Unix系OS パーミッションとそのときの各種コマンドの実行結果まとめ。
きっかけは、自分所有のディレクトリだとしても、実行権(x)がないとその配下に移動(cd;Change Directory)できないことを今更知ったことに起因する。
すげー今更なんだけど、実行権(x)持ってないディレクトリって中に移動出来ないんだね。ホント今更になって知ったわ。大体755か777だから気付かなかったか。まだまだ素人ですなあ〜#unix #cd #permission
— rmブランクスラッシュ (@rm_blank_slash) 2017年6月30日
Noコマンドパーミッション結果
枝番 | r(4) | w(2) | x(1) | 判断 | 概要 | ||
1 | cd | 1-1 | r | - | - | × | 移動できない。権限がない旨のエラーで怒られる。 |
1-2 | - | w | - | × | 1-1同様 | ||
1-3 | - | - | x | ○ | 移動できる。 が、r(読込)がないので移動先でls打っても内容が得られず、 ディレクトリ内に何が入ってるかわからない。 よって移動できても意味がない。 |
||
1-4 | r | w | - | × | 1-1同様 | ||
1-5 | r | - | x | ○ | 移動できる。 r(読込)もあるからlsで中身も見れる。 |
||
1-6 | - | w | x | ○ | 1-3同様 | ||
2 | ls | 2-1 | r | - | - | ○ | 配下のディレクトリ・ファイルのリストが得られる |
2-2 | - | w | - | × | 実行できない。権限がない旨のエラーで怒られる。 | ||
2-3 | - | - | x | × | 2-2同様 | ||
2-4 | r | w | - | ○ | 2-1同様 | ||
2-5 | r | - | x | ○ | 2-1同様 | ||
2-6 | - | w | x | × | 2-2同様 | ||
3 | rm | 3-1 | r | - | - | × | 削除できない。「ディレクトリが空ではない」と言われる。 -rf付けても同じこと言われる。 (-rfでそういわれるとなると原因は違う気もするが…) |
3-2 | - | w | - | × | 削除できない。権限がない旨のエラーで怒られる。 | ||
3-3 | - | - | x | × | 3-2同様 | ||
3-4 | r | w | - | × | 3-1同様 | ||
3-5 | r | - | x | × | 3-1同様 | ||
3-6 | - | w | x | × | 3-2同様 | ||
4 | find | 4-1 | r | - | - | × | 実行できない。権限がない旨のエラーで怒られる。 |
4-2 | - | w | - | × | 4-1同様 | ||
4-3 | - | - | x | × | 4-1同様 | ||
4-4 | r | w | - | × | 4-1同様 | ||
4-5 | r | - | x | ○ | 実行できる(配下のディレクトリ・ファイル群のリストが得られる)。 | ||
4-6 | - | w | x | × | 4-1同様 | ||
5 | du | 5-1 | r | - | - | △ | エラーにはならないが、正しく集計されない(容量0になる)。 |
5-2 | - | w | - | △ | 5-1同様 | ||
5-3 | - | - | x | △ | 5-1同様 | ||
5-4 | r | w | - | △ | 5-1同様 | ||
5-5 | r | - | x | ○ | 実行できるし、正しい集計結果が得られる。 | ||
5-6 | - | w | x | △ | 5-1同様 | ||
6 | tar | 6-1 | r | - | - | × | tarファイルは出来上がるが、配下のディレクトリ・ファイル群が含まれていない空のtarファイルになる。 実行時に権限がない旨のエラーが発生し怒られるため、 「親ディレクトリそのものは圧縮できるが子はできない」という状態なのだろう。 |
6-2 | - | w | - | × | 6-1同様 | ||
6-3 | - | - | x | × | 6-1同様 | ||
6-4 | r | w | - | × | 6-1同様 | ||
6-5 | r | - | x | ○ | 実行できる。配下のディレクトリ・ファイル群もちゃんと圧縮される。 | ||
6-6 | - | w | x | × | 6-1同様 | ||
7 | mv | 7-1 | r | - | - | ○ | 実行できる(名前の変更が可能)。 |
6-2 | - | w | - | ○ | 7-1同様 | ||
7-3 | - | - | x | ○ | 7-1同様 | ||
7-4 | r | w | - | ○ | 7-1同様 | ||
7-5 | r | - | x | ○ | 7-1同様 | ||
7-6 | - | w | x | × | 7-1同様 | ||
8 | cp | ※コピー元としてこのディレクトリを指定した場合の動きについて記述。(cp -r A BのAが、↓に書いてあるパーミッションだったら、という意味) | |||||
8-1 | r | - | - | × | コピーできない。権限がない旨のエラーが発生し怒られる。 コピー先のディレクトリは出来上がるが、中身が空。 |
||
8-2 | - | w | - | × | 8-1同様 | ||
8-3 | - | - | x | × | 8-1同様 | ||
8-4 | r | w | - | × | 8-1同様 | ||
8-5 | r | - | x | ○ | コピーできる。 | ||
8-6 | - | w | x | × | 8-1同様 |
基本的に5以上(r,xもち)にしておけば大体どのコマンドも実行できるようである。
そんなにキツイumaskを見たことがないが、この結果を見るに、umaskも222以下にしておいた方がよさそうだ。
まあその後でchmodされることもあるしなんとも言えないが…
(今回、冒頭で書いた例(xがないとcdできない)も、後で無理やりchmodで権限変更したケースだしね)
とにかくディレクトリのパーミッションは5以上にしておこう、という教訓を得ました。