このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:ファイルのパーミッション
ファイルのパーミッション
Linuxシステムでは、複数のユーザーが同時に1台のマシンにログインして操作することが一般的です。そのため、自分のファイルが他のユーザーに見られたり、誤って他のユーザーのファイルを上書きしてしまうといった問題を防ぐための仕組みが必要です。この問題を解決するために、Linuxではファイルに対するアクセス権限を管理する パーミッション(permission) という概念が導入されています。
ここでは、ファイルのパーミッションについて詳しく解説します。パーミッションの基本的な概念から、実際の確認方法や各権限の意味までを、具体的な例や表を用いてわかりやすく説明します。
ファイルのパーミッションとは
1つのファイルには、「誰に、どのような操作を許可するか」という権限情報が設定されています。この情報のことを パーミッション と呼びます。パーミッションは、ファイルのオーナー(所有者)と同様に、ls
コマンドに -l
オプションを付けて詳細表示することで確認できます。
パーミッションの確認方法
ls -l
コマンドを使用して、ファイルのパーミッションを確認してみましょう。例えば、ls
コマンドの実体ファイルである /bin/ls
のパーミッションを確認します。
user01@ubuntu:~$ ls -l /bin/ls
-rwxr-xr-x 1 root root 142312 4月 5 2024 /bin/ls
ls -l
コマンドの表示内容
ls -l
コマンドの「-rwxr-xr-x」の出力を解説します。
- 先頭の1文字:ファイルタイプを表します。
・-
:通常ファイル
・d
:ディレクトリ
・l
:シンボリックリンク - 次の9文字:ファイルのパーミッション(ファイルモード)を表します。
この部分は3文字ずつに区切られ、それぞれが以下を示します。
・最初の3文字:オーナーに対するパーミッション
・次の3文字:グループに対するパーミッション
・最後の3文字:その他のユーザーに対するパーミッション
/bin/ls
ファイルのパーミッション(ファイルモード)の構成
/bin/ls
のパーミッション部分 -rwxr-xr-x
を分解すると以下のようになります。
ファイルタイプ | オーナー | グループ | その他のユーザー |
---|---|---|---|
- | rwx | r-x | r-x |
/bin/ls
ファイルのパーミッション(ファイルモード)の構成パーミッションの記号と意味
パーミッションを構成する各記号の意味は以下の通りです。
記号 | 意味 |
---|---|
r | 読み取り許可(read) |
w | 書き込み許可(write) |
x | 実行許可(eXecute) |
- | 権限なし |
操作が許可されている場合は r
、w
、x
が表示され、許可されていない場合は -
が表示されます。
/bin/ls
ファイルのパーミッションのまとめ
先ほどの /bin/ls
ファイルのパーミッションを表にまとめると以下のようになります。
ユーザー種別 | 読み取り (r ) | 書き込み (w ) | 実行 (x ) |
---|---|---|---|
オーナー | 許可 | 許可 | 許可 |
グループ | 許可 | 不許可 | 許可 |
その他のユーザー | 許可 | 不許可 | 許可 |
/bin/ls
ファイルのパーミッションのまとめ この設定から、/bin/ls
ファイルはオーナーである root
ユーザーには全ての権限があり、グループとその他のユーザーには読み取りと実行が許可され、書き込みは許可されていないことがわかります。
- オーナー(root):読み取り、書き込み、実行が可能
- グループ(root グループに所属するユーザー):読み取り、実行が可能、書き込みは不可
- その他のユーザー:読み取り、実行が可能、書き込みは不可
このように設定することで、ls
コマンドは全ユーザーが実行できるが、ファイル自体の変更はオーナーのみが行えるようになっています。
別のファイルのパーミッション例:/etc/crontab
さらに別のファイルでパーミッションを確認してみます。/etc/crontab
ファイルのパーミッションを表示します。
user01@ubuntu:~$ ls -l /etc/crontab
-rw-r--r-- 1 root root 1136 3月 31 2024 /etc/crontab
/etc/crontab
ファイルのパーミッション(ファイルモード)の構成
-rw-r--r--
を分解すると以下のようになります。
ファイルタイプ | オーナー | グループ | その他のユーザー |
---|---|---|---|
- | rw- | r-- | r-- |
/etc/crontab
ファイルのパーミッション詳細- オーナーのパーミッション:
rw-
(読み取り、書き込みが許可、実行は不可) - グループのパーミッション:
r--
(読み取りが許可、書き込みと実行は不可) - その他のユーザーのパーミッション:
r--
(読み取りが許可、書き込みと実行は不可)
/etc/crontab
ファイルのパーミッションまとめ
ユーザー種別 | 読み取り (r ) | 書き込み (w ) | 実行 (x ) |
---|---|---|---|
オーナー | 許可 | 許可 | 不許可 |
グループ | 許可 | 不許可 | 不許可 |
その他のユーザー | 許可 | 不許可 | 不許可 |
/etc/crontab
ファイルのパーミッションまとめ この設定から、/etc/crontab
ファイルはオーナーである root
ユーザーのみが書き込み可能で、他のユーザーは読み取りのみ可能であることがわかります。また、実行権限がないため、ファイルをコマンドとして実行することはできません。
実行権限がない場合の挙動
実行権限がないファイルを実行しようとすると、以下のようなエラーメッセージが表示されます。
user01@ubuntu:~$ /etc/crontab
bash: /etc/crontab: 許可がありません
これは、ファイルに実行権限 (x
) が設定されていないため、実行できないことを示しています。
まとめ
- パーミッション:ファイルに対する「誰に、どのような操作を許可するか」を規定する情報。
- パーミッションの確認方法:
ls -l
コマンドを使用して詳細表示。 - パーミッションの構成
ファイルタイプ(-
、d
、l
など)
オーナーに対する権限(最初の3文字)
グループに対する権限(次の3文字)
その他のユーザーに対する権限(最後の3文字) - パーミッションの記号
r
:読み取り許可w
:書き込み許可x
:実行許可-
:権限なし - 権限の設定により、ファイルのセキュリティを確保し、他のユーザーからの不正なアクセスや誤操作を防止。
ファイルのパーミッションを正しく理解し、適切に設定することで、Linuxシステムの安全性と信頼性を高めることができます。