「ls -l」コマンドの表示からファイルの属性を理解しよう:“応用力”をつけるためのLinux再入門(9)(2/4 ページ)
今まで漠然と見ていた(かもしれない)「ls -l」コマンドには、実にたくさんの情報が詰め込まれています。1つ1つの意味を理解することで、Linuxではファイルがどのように管理されているかが見えてきます。
ファイルのパーミッション(許可属性)とは?
ファイルのアクセス権などを決定するのが、「パーミッション(許可属性)」になります。
パーミッションには「読み出しの許可」「書き込みの許可」「実行の許可」の3種類があります。例えば、読み出し許可のないファイルの中身を見ようとした場合は、「Permission denied(許可されていない)」というエラーが表示されます。コマンドも許可が与えられて、初めて実行可能になります(参考記事:連載「“応用力”をつけるためのLinux再入門(第8回)」)。
パーミッションは、“3文字のアルファベット×3組”で表示されます(画面3)。
3文字のアルファベットは、それぞれ「読み出し(r)」「書き込み(w)」「実行許可(x)」を示しています。「-」の場合は、該当する許可がありません。例えば、「rwx」ならば読み出し、書き込み、実行の全てが可能であり、「r--」ならば読み出しはできても、書き込んだり、実行したりすることはできません。
“3組”が意味するのは「所有者」「グループ」「他人(所有者でも所有グループでもない人)」で、例えばパーミッションが「rwxr-x---」ならば、所有者は読み書き実行が全て許可(rwx)、グループは読み出しと実行が許可(r-x)、それ以外の人は全ての操作が一切不可(---)という意味になります。なお、パーミッションは「chmod」コマンドで変更できます。
ディレクトリのパーミッション
ディレクトリの場合、読み出しは「ファイル一覧の表示」、書き込みは「ファイルの追加」、実行は「cd」コマンド(ディレクトリを移動する)でそのディレクトリに入れるかどうかを意味します。
例えば、各ユーザーのホームディレクトリは「rwx------」にパーミッションが設定されており、所有者以外はlsコマンドでファイルを一覧表示したり、ファイルを追加したり、cdコマンドで中に入ったりすることはできません(画面4)。
パーミッションを表す数値
パーミッションは“3桁の数字”で表現されることもあります。「読み出し可能(r)=4」「書き込み可能(w)=2」「実行可能(x)=1」で、読み出しと書き込みが可能な場合は「4+2=6」と表現されます。全ての操作が可能な場合は「4+2+1」で「7」、全ての操作が不可の場合は「0」になります。
この数値が所有者、グループ、他人(所有者でも所有グループでもない人)の順に並び、3桁の数字となっています(表2)。
パーミッション | 数値 | 意味 |
---|---|---|
r | 4 | 読み出し可能(ディレクトリの場合は、ファイル一覧の表示の許可) |
w | 2 | 書き込み可能(ディレクトリの場合は、ファイルの追加/削除の許可) |
x | 1 | 実行可能(ディレクトリの場合は、cdコマンドでそのディレクトリに入れるかどうか) |
- | 0 | 許可がない |
表2 パーミッションと数値の対応 |
※パーミッションの0〜7の数値は、2進数で見た場合に“どのビットが立っているか(1になっているか)”で管理されています。パーミッションの数値の「4」「2」「1」を2進数で表現すると、それぞれ「100」「010」「001」となり、「6(4+2)」ならば「110」、「7(4+2+1)」は「111」となります。
※パーミッションは、0〜7×4桁の数で管理されています。2〜4桁目は「ls -l」コマンドで表示される3セット(所有者、グループ、他人)に対応しています。1桁目は特殊な属性で、「4」には「set-user-ID(SUID)」、「2」には「set-group-ID(SGID)」(それぞれ、実行時に所有者または所有グループの権限を引き継ぐという意味)、「1」にはディレクトリに設定した場合には「削除制限」、ファイルの場合は「スティッキー(sticky属性)」が設定されている、という意味があります。削除制限とは、ファイルの削除やリネームを所有者だけが行えるというもので、sticky属性は、実行可能ファイルにセットしている場合、そのファイルが読み込んだテキストイメージを終了後もメモリに残すという働きがあります。
Copyright © ITmedia, Inc. All Rights Reserved.