このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンドの基本:数値モードでパーミッションを変更する:chmodコマンド

chmodコマンド(数値モード)

 ファイルやディレクトリのパーミッションを適切に設定することは、Linuxシステムのセキュリティと安定性を維持する上で非常に重要です。パーミッションの設定には、chmodコマンドを使用します。chmodコマンドには「シンボルモードによる指定」と「数値モードによる指定」の2種類の方法があります。ここでは、数値モードによる指定について詳しく解説します。

 なお、ファイルのパーミッションを変更できるのは、オーナースーパーユーザー(root)のみです。誰でもパーミッションを変更できてしまうと、アクセス制御の意味がなくなってしまうためです。

数値モードによるパーミッションの変更

数値モードでパーミッションを変更する際の基本的なコマンドの書式は以下の通りです。

数値モードでの指定の構成

【書式】
chmod <8進数の数値> <ファイル名>

 数値モードは、絶対指定の方法であり、元のパーミッションに関わらず新しいパーミッションを一括で設定します。

パーミッションの数値表現

パーミッションを数値で表現するために、rwxの各権限に以下の数字を割り当てます。

権限数字
読み取り (r)4
書き込み (w)2
実行 (x)1
パーミッションの数値表現

 各権限の数字を足し合わせて、パーミッションの値を決定します。この値を「オーナー」「グループ」「その他のユーザー」の順に3つ並べて指定します。

パーミッションの数値変換方法

以下に、パーミッションを数値に変換する方法を図や表で説明します。

例1:「rwxr-xr-x」を数値に変換

パーミッションの構成

オーナー (u)グループ (g)その他のユーザー (o)
権限r w xr - xr - x
パーミッションの構成

各権限の数値

  • オーナー
    r (4) + w (2) + x (1) = 7
  • グループ
    r (4) + - (0) + x (1) = 5
  • その他のユーザー
    r (4) + - (0) + x (1) = 5

数値でのパーミッョン指定

chmod 755 <ファイル名>

図解

 この結果、パーミッションは755となり、元のパーミッションが何であれ「rwxr-xr-x」に変更されます。

例2:「rw-r--r--」を数値に変換

パーミッションの構成

オーナー (u)グループ (g)その他のユーザー (o)
権限r w -r - -r - -
パーミッションの構成

各権限の数値

  • オーナー
    r (4) + w (2) + - (0) = 6
  • グループ
    r (4) + - (0) + - (0) = 4
  • その他のユーザー
    r (4) + - (0) + - (0) = 4

数値でのパーミッション指定

chmod 644 <ファイル名>

図解

この結果、パーミッションは644となり、ファイルは「rw-r--r--」に設定されます。

実際の操作例

例1:パーミッションを755に設定

1.ファイルを作成

user01@ubuntu:~$ touch file.txt

2.パーミッションを変更

user01@ubuntu:~$ chmod 755 file.txt

3.パーミッションを確認

user01@ubuntu:~$ ls -l file.txt
-rwxr-xr-x 1 user01 user01 0 10月 20 01:09 file.txt

解説

  • オーナー:読み取り、書き込み、実行が可能(rwx
  • グループ:読み取り、実行が可能(r-x
  • その他のユーザー:読み取り、実行が可能(r-x) このパーミッションは、他のユーザーに実行可能なファイルを公開する場合によく使用されます。

例2:パーミッションを644に設定

1.パーミッションを変更

user01@ubuntu:~$ chmod 644 file.txt

2.パーミッションを確認

user01@ubuntu:~$ ls -l file.txt
-rw-r--r-- 1 user01 user01 0 10月 20 01:09 file.txt

解説

  • オーナー:読み取り、書き込みが可能(rw-
  • グループ:読み取りのみ可能(r--
  • その他のユーザー:読み取りのみ可能(r--) このパーミッションは、他のユーザーに内容を見せたいが、編集はさせたくないファイルに適しています。

3.不要になったファイルの削除

user01@ubuntu:~$ rm file.txt
user01@ubuntu:~$ ls
snap  ダウンロード  デスクトップ  ビデオ    ミュージック
work  テンプレート  ドキュメント  ピクチャ  公開

まとめ

  • 数値モードは、chmodコマンドでパーミッションを8進数の数字で絶対的に指定する方法です。
  • 各権限の数値対応
    読み取り(r):4
    書き込み(w):2
    実行(x):1
  • パーミッションの計算
    各ユーザー種別(オーナー、グループ、その他のユーザー)ごとに、許可したい権限の数字を足し合わせます。
  • 指定方法
    chmod 755 file.txt のように、3桁の数字を指定してパーミッションを設定します。
  • 注意点
    パーミッションの変更は、ファイルのオーナーかスーパーユーザー(root)のみが行えます。

 数値モードを使用することで、パーミッションを一度に正確に設定できます。適切なパーミッションを設定し、システムのセキュリティと安定性を維持しましょう。