Linuxのファイル権限と所有権をマスターしよう:chmodとchownコマンド解説
Linuxの基本的なファイル管理コマンドであるchmodとchownについて、使い方を分かりやすく解説します。ファイルの権限設定や所有者変更がこの記事一本で分かります。
はじめに
Linuxシステムでファイルを安全かつ効率的に管理するには、「パーミッション(権限)」と「所有権」の理解が不可欠です。これらを操作する基本的なコマンドが chmod と chown です。
この記事では、ls -lコマンドの読み方から、chmodによる権限の変更方法、chownによる所有者の変更方法までを分かりやすく解説します。
パーミッションと所有権の確認方法
まず、ls -l コマンドでファイルの情報を確認してみましょう。
$ ls -l
total 4
drwxr-xr-x 3 kyakko kyakko 4096 May 22 16:48 linux_programs
-rw-r--r-- 1 kyakko kyakko 0 May 22 17:10 testfile
この出力の左側に表示される drwxr-xr-x や -rw-r--r-- が、パーミッションとファイル種別を示しています。
- 1文字目: ファイル種別 (
d: ディレクトリ,-: ファイル,l: シンボリックリンク) - 2〜4文字目: 所有者のアクセス権限
- 5〜7文字目: 所有グループのアクセス権限
- 8〜10文字目: その他のユーザーのアクセス権限
それぞれの権限は、以下の3種類の文字で表現されます。
| 文字 | 意味 |
|---|---|
r | 読取り (Read) |
w | 書込み (Write) |
x | 実行 (Execute) |
- | 権限なし |
chmod: ファイルの権限を変更する
chmod (change mode) コマンドを使うと、ファイルのアクセス権限を変更できます。指定方法には「数値」と「記号」の2通りがあります。
1. 数値で指定する方法
権限を数値の合計で表現する方法です。覚えやすく、一括で権限を指定したい場合に便利です。
| 数字 | 権限 | 意味 |
|---|---|---|
| 4 | r | 読取り |
| 2 | w | 書込み |
| 1 | x | 実行 |
例えば、chmod 755 script.sh のように使います。この 755 は以下を意味します。
- 所有者 (7):
4+2+1=rwx(読取り, 書込み, 実行すべてOK) - 所有グループ (5):
4+0+1=r-x(読取りと実行のみOK) - その他 (5):
4+0+1=r-x(読取りと実行のみOK)
chmod 777 は、全ユーザーにすべての権限を与える設定で、セキュリティ上注意が必要です。
2. 記号で指定する方法
誰の権限を、どのように変更するかを記号で指定する方法です。特定の権限だけを追加・削除したい場合に直感的で分かりやすいです。
| 対象 | 意味 | 操作 | 意味 | 権限 | 意味 |
|---|---|---|---|---|---|
u | 所有者 | + | 権限を追加 | r | 読取り |
g | グループ | - | 権限を削除 | w | 書込み |
o | その他 | = | 指定権限に設定 | x | 実行 |
a | 全員 |
使用例:
- 所有者に実行権限を追加する:
$ chmod u+x script.sh - グループとその他のユーザーから書込み権限を削除する:
$ chmod go-w config.conf - 全員に読取り権限のみを設定する:
$ chmod a=r readonly.txt
chown: ファイルの所有者を変更する
chown (change owner) コマンドは、ファイルやディレクトリの所有者・所有グループを変更します。
基本的な使い方
chown [新しい所有者]:[新しい所有グループ] [ファイル名] の形式で指定します。
# testfileの所有者を`user1`、所有グループを`developers`に変更
$ chown user1:developers testfile
所有者だけ、または所有グループだけを変更することも可能です。
- 所有者のみ変更:
$ chown user1 testfile - 所有グループのみ変更:
$ chown :developers testfile(コロンを忘れないように)
ディレクトリ配下をまとめて変更
-R (--recursive) オプションを付けると、指定したディレクトリとその中にあるすべてのファイル・サブディレクトリの所有権を再帰的に変更できます。
# `project_dir`ディレクトリ配下の所有者をすべて`kyakko:kyakko`に変更
$ chown -R kyakko:kyakko project_dir
まとめ
chmod と chown は、Linuxのセキュリティとファイル管理の基本です。
chmod: ファイルやディレクトリのアクセス権限を変更する。chown: ファイルやディレクトリの所有者・所有グループを変更する。
これらのコマンドを使いこなすことで、意図しないファイルの変更を防ぎ、複数人での開発やサーバー運用をより安全に行うことができます。