【Linux】chmodコマンドでファイルのアクセス権を変更する

Linux

chmodコマンド

ファイルやディレクトリのアクセス権を変更できるコマンドです。

書式

chmod [オプション] アクセス権 ファイル名

オプション

オプション説明
-v詳細を表示する。
-R指定したディレクトリ内全てのアクセス権を変更する。
-fエラ〜メッセージを表示しない。

ファイルとディレクトリのアクセス権について

アクセス権はファイルとディレクトリにそれぞれ付与できるので、以下の表で確認します。

権限ファイルディレクトリ
r(読み)ファイルの内容を読みれる。ディレクトリ内の内容を参照できる。
w(書き)ファイルに書き込むことが出来る。ディレクトリ内に新規ファイルの作成、ファイルの名前変更・削除ができる。
x(実行)ファイルを実行できる。ディレクトリ内へのファイルアクセス、ディレクトリへの移動ができる。

chmodでアクセス権を付与することはよく実施しますが、ディレクトリのアクセス権を意識したことがあまり無かったので、検証してみたいと思います。

検証

※以下検証はCentOS8で検証しています。

まずは土台となる環境を作りました。いろいろとやっていますが、treeコマンドでざっくりとした部分は確認できます。

検証1

ではでは、chmodコマンドの実行結果を表示させます。

どういうわけか、パーミッションとオプションを逆に書いてもできました。

検証2

次にディレクトリ内のファイルについても全てパーミッションを変更してみます。

ディレクトリもその配下のファイルについても変更されています。

検証3(ディレクトリの権限による操作制限の検証)

以下のようにディレクトリ内にディレクトリ を作成しました。

※他のディレクトリも、ディレクトリ内のファイルは全てパーミッションを777にしています。

では、localhostでログインしてみます。

では、検証開始。

アクセス権:701

ユーザーにとってのディレクトリへのアクセス権「–x」での動作確認。

ディレクトリで移動はできても、それ以上は何もできないですね。

アクセス権:702

ユーザーにとってのディレクトリへのアクセス権「-w-」での動作確認。

書き込み権限さえあれば内部のファイルへ書き込みができると思いましたが、どうやらそうでもないようです。

アクセス権:703

ユーザーにとってのディレクトリへのアクセス権「-wx」での動作確認。

書き込みができました。ファイルを作成したのにlsで見れないのは残念。

アクセス権:704

ユーザーにとってのディレクトリへのアクセス権「r–」での動作確認。

かろうじてファイル名が分かる程度でした。

アクセス権:705

ユーザーにとってのディレクトリへのアクセス権「r-x」での動作確認。

想定通り、書き込みだけができないようです。

アクセス権:706

ユーザーにとってのディレクトリへのアクセス権「rw-」での動作確認。

実行権がかなりの鍵を握っているみたいですね。かろうじてファイル名だけ分かりますが、それ以外は何もできないに等しいです。個人的には一番意外でした。

アクセス権:707

ユーザーにとってのディレクトリへのアクセス権「rwx」での動作確認。

当然ですが、フルコントロールでした。

以上で検証終了です。時間はそこそこかかりましたが、結構楽しめましたね。ところどころ予想外の結果になってくれたので、やったかいがありました。

タイトルとURLをコピーしました