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

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

chmodコマンド(シンボルモード)

 Linuxシステムでは、ファイルやディレクトリのパーミッションを適切に設定することで、セキュリティを確保し、他のユーザーからの不正なアクセスや誤操作を防ぐことができます。パーミッションの設定には、chmodコマンドを使用しますが、その指定方法には「シンボルモード」と「数値モード」の2種類があります。ここでは、直感的で理解しやすいシンボルモードによる指定について詳しく解説します。

シンボルモードによるパーミッションの変更

 ファイルやディレクトリのパーミッションを設定する際には、chmodコマンドを使用します。シンボルモードでは、以下の形式でコマンドを実行します。

シンボルモードでの指定の構成

【書式】
chmod [ugoa][+-=][rwx] <ファイル名>

シンボルモードの指定は、「誰に」「どのような権限を」「追加または削除する」のかを明確に表現できます。

$ chmod u+w file.txt
        ↓↓↓    ↓
       誰に↓何を ファイル名
         ↓
        どうする

  • 誰に(ugoa):パーミッションを変更する対象のユーザーを指定します。
  • 何をどうする(+-=rwx):パーミッションの操作と種類を指定します。

ユーザーの指定(ugoa)

記号意味
uオーナー(所有者)
gグループ
oその他のユーザー
a全てのユーザー(u、g、o)
ユーザーの指定(ugoa)

注意:ユーザー指定を省略すると、a(全てのユーザー)が指定されたものとみなされます。

操作の指定(+-=)

記号意味
+権限を追加する
-権限を削除(禁止)する
=権限を指定したものに置き換える
操作の指定(+-=)

権限の種類(rwx)

記号意味
r読み取り (Read)
w書き込み (Write)
x実行 (eXecute)
権限の種類(rwx)

シンボルモードでのパーミッション設定例

例1:オーナーの書き込み権限を追加

 元のパーミッションがr--r--r--file.txtに対して、オーナーに書き込み権限を追加します。

 以下の操作を行います。「数値モード」でのパーミッションについては、次のコンテンツ「数値モードでパーミッションを変更する:chmodコマンド」で解説します。

user01@ubuntu:~$ touch file.txt
user01@ubuntu:~$ chmod 444 file.txt 
user01@ubuntu:~$ ls -l file.txt 
-r--r--r-- 1 user01 user01 0 10月 19 00:37 file.txt
user01@ubuntu:~$ chmod u+w file.txt # シンボルモードでパーミッションを変更する
user01@ubuntu:~$ ls -l file.txt 
-rw-r--r-- 1 user01 user01 0 10月 19 00:35 file.txt

例2:グループの書き込み権限を削除

元のパーミッションがrw-rw-r--file.txtから、グループの書き込み権限を削除します。

用途:オーナーとグループに書き込み許可があったファイルを、オーナーだけが書き込めるように変更する場合に使用します。

以下の操作を行います。

user01@ubuntu:~$ chmod 664 file.txt 
user01@ubuntu:~$ ls -l file.txt 
-rw-rw-r-- 1 user01 user01 0 10月 19 00:37 file.txt
user01@ubuntu:~$ chmod g-w file.txt # シンボルモードでパーミッションを変更する
user01@ubuntu:~$ ls -l file.txt 
-rw-r--r-- 1 user01 user01 0 10月 19 00:37 file.txt

例3:複数のユーザーの権限をまとめて指定

 元のパーミッションがrwxrwxrwxfile.txtに対して、グループとその他のユーザーの権限をr(読み取り)のみに設定します。

以下の操作を行います。

user01@ubuntu:~$ chmod 777 file.txt 
user01@ubuntu:~$ ls -l file.txt 
-rwxrwxrwx 1 user01 user01 0 10月 19 00:37 file.txt
user01@ubuntu:~$ chmod go=r file.txt # シンボルモードでパーミッションを変更する
user01@ubuntu:~$ ls -l file.txt 
-rwxr--r-- 1 user01 user01 0 10月 19 00:37 file.txt

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

以下の操作を行います。

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

シンボルモードの特性

 シンボルモードは、相対的な指定方法です。つまり、指定したパーミッションのみを変更し、他の権限はそのまま維持します。これにより、「オーナーの書き込み権限を追加する」や「グループの実行権限を削除する」といった部分的な変更が容易に行えます。

注意点

パーミッションの変更権限

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

まとめ

  • chmodコマンドを使用して、ファイルやディレクトリのパーミッションを変更します。
  • シンボルモードでは、「誰に」「どの権限を」「どうする」の形式で直感的にパーミッションを指定できます。
  • ユーザー指定(ugoa)と操作指定(+-=)、権限種類(rwx)を組み合わせて使用します。
  • シンボルモードは相対的な変更が可能で、一部のパーミッションだけを変更したい場合に便利です。

適切なパーミッション設定を行い、システムのセキュリティと安定性を維持しましょう。