Linuxのファイル権限と所有権をマスターしよう:chmodとchownコマンド解説

Linuxの基本的なファイル管理コマンドであるchmodとchownについて、使い方を分かりやすく解説します。ファイルの権限設定や所有者変更がこの記事一本で分かります。

linux Linuxchmodchownpermission

はじめに

Linuxシステムでファイルを安全かつ効率的に管理するには、「パーミッション(権限)」と「所有権」の理解が不可欠です。これらを操作する基本的なコマンドが chmodchown です。

この記事では、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. 数値で指定する方法

権限を数値の合計で表現する方法です。覚えやすく、一括で権限を指定したい場合に便利です。

数字権限意味
4r読取り
2w書込み
1x実行

例えば、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

まとめ

chmodchown は、Linuxのセキュリティとファイル管理の基本です。

  • chmod: ファイルやディレクトリのアクセス権限を変更する。
  • chown: ファイルやディレクトリの所有者・所有グループを変更する。

これらのコマンドを使いこなすことで、意図しないファイルの変更を防ぎ、複数人での開発やサーバー運用をより安全に行うことができます。