【Linuxコマンド】chmodコマンドを理解する – ファイルの権限を適切に設定する方法-

Linux

はじめに

Linuxで作業していると、「ファイルやディレクトリのアクセス権限を変更したい」と思う場面がありますが、そんなときに使えるのがchmodコマンドです。
この記事では、chmodの基本的な使い方から実践的な活用例まで解説していきます。

chmodコマンドとは

chownとはchange modeの略称で、LinuxやUnix系OSでファイルやディレクトリの「アクセス権限(パーミッション)」を変更するためのコマンドです。
参照:chmod ウィキペディア(Wikipedia)

基本の使い方

基本的な構文は以下になります。

$ chmod [オプション] モード ファイル名 

パーミッションの数字

chmodコマンドでは、ファイルのパーミッションを3桁の**数字(8進数)**で指定することができます。それぞれの桁は以下のような意味です。

意味
1桁目 所有者(user)
2桁目 グループ(group)
3桁目 その他(others)
数字の意味(対応するパーミッション)
数字 権限 意味
0 何もなし
1 –x 実行のみ
2 -w- 書き込みのみ
3 -wx 書き込み+実行
4 r– 読み取りのみ
5 r-x 読み+実行
6 rw- 読み+書き
7 rwx 全部(読み・書き・実行)
よく使うchmodの数値例
数値 パーミッション表記 説明
777 rwxrwxrwx 誰でも全権限(危険なので基本NG)
755 rwxr-xr-x 所有者だけが編集でき、他は読み取り・実行のみ
700 rwx------ 所有者だけが全権限(他人には見せない設定)
644 rw-r--r-- 所有者は読み書き、他は読み取りのみ(テキストなど)
600 rw------- 所有者のみ読み書き(機密ファイルに多い)
444 r--r--r-- 読み取り専用(誰も書けない)
711 rwx--x--x 実行のみを許可(プログラムなどの実行時)

実践例で学ぶchown

ここからは実践としてsampleディレクトリの配下にsample.txtを用意してファイルのアクセス権限を変更していきます。
sample.txtの現在の権限は以下のようになっています。(ls -lで確認します。)

-rw-r--r-- 1 user001 user001 0 Jun 3 11:29 sample.txt

このファイル、所有者に読み書き(rw-)、グループに読み取り(r–)、その他に読み取り(r–)の権限が与えられています。

1. ファイルの権限を数字で変更する

・sample.txt の権限を「所有者に読み書き実行、グループとその他に読み取り実行(755)」に変更する。

$ sudo chmod 755 sample.txt 

・結果

-rwxr-xr-x 1 user001 user001 0 Jun 3 11:29 sample.txt

2. 記号を使って権限を変更する

・sample.txt のグループとその他から読み取り権限を外す。

$ sudo chmod go-r sample.txt

・結果

-rwx--x--x 1 user001 user001 0 Jun 3 11:29 sample.txt

3. ディレクトリ以下を再帰的に変更する(-Rオプション)

-Rオプションをつけると指定したディレクトリの中にあるすべてのファイルとサブディレクトリに対して同じ操作を一括で適用できます。

新たにsampleディレクトリは以下にフォルダ:develop、ファイル:test.txtを作成したとします。

・/sample フォルダの中身すべて(ファイル・フォルダ含む)の権限を「755」に変更する。

$ sudo chmod -R 755 . 

. は「今いるディレクトリ」を意味します。

・結果

drwxr-xr-x 2 user002 user002 4096 Jun 3 11:58 develop
-rwxr-xr-x 1 user001 user001 0 Jun 3 11:29 sample.txt

./develop:
-rwxr-xr-x 1 user002 user002 0 Jun 3 11:57 test.txt

まとめ

今日は、chmodを使って使ってファイルやディレクトリのアクセス権限を操作することができました。chmodを使いこなすことで、適切にファイルの読み書き・実行権限を設定でき、システムの安全性や利便性を高められます。Linuxのファイル管理で非常に重要なコマンドなので、数字の意味もあわせて理解しつつ実践で使ってみてください。

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