ファイルパーミッション
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/07/15 16:43 UTC 版)
パーミッションの表記法
記号表記(シンボリックモード)
UNIXのパーミッションを表示する形式は様々である。最も一般的な形式が記号表記 (symbolic notation) である。この形式ではパーミッションを10文字の文字列で表記する。
先頭の文字 | |
---|---|
- | 通常ファイル |
d | ディレクトリ |
l | シンボリックリンク |
クラスごとの3文字 | |
先頭 | ユーザーのパーミッション |
中間 | グループのパーミッション |
末尾 | その他クラスのパーミッション |
各3文字が表すパーミッション | |
1文字目 | r: リード可、-: リード不可 |
2文字目 | w: ライト可、-: ライト不可 |
3文字目 | x: 実行可、-: 実行不可 |
最初の1文字はファイルの種別(UNIXファイルタイプ)を表す:
- '-' は一般のファイル
- 'd' はディレクトリ
- 'b' はブロックデバイスのスペシャルファイル
- 'c' はキャラクターデバイスのスペシャルファイル
- 'l' はシンボリックリンク
- 'p' は名前付きパイプ
- 's' はUNIXドメインソケット
各クラスのパーミッションは、3文字で構成される。先頭の3文字はユーザー(所有者)クラスを表す。中間の3文字はグループクラスを表す。末尾の3文字はその他クラスを表す。
各クラスの3文字のパーミッションは、順にリード(読み出し)、ライト(書き込み)、実行を表す。
- 'r' ならばリード可で、'-' ならばリード不可。
- 'w' ならばライト可で、'-' ならばライト不可。
- 'x' ならば実行可で、'-' ならば実行不可。
記号表記の例を、以下に示す。
- "-rwxr-xr-x" は、通常ファイルであり、ユーザーは全ての操作が可能、それ以外のクラスはリードと実行だけが可能。
- "crw-rw-r--" は、キャラクタースペシャルファイルであり、所有者およびグループはリードとライトが可能、その他のクラスはリードだけが可能。
- "dr-x------" は、ディレクトリであり、ユーザーがリードとそこへの移動が可能、それ以外のクラスは何もできない。
記号表記とその他のパーミッション
その他のパーミッションが加わると、記号表記は若干複雑になる。
パーミッション | クラス | 実行可1 | 実行不可2 |
---|---|---|---|
Set User ID (setuid) | ユーザー | s | S |
Set Group ID (setgid) | グループ | s | S |
Sticky | その他 | t | T |
- 実行可であることも同時に示す文字
- 実行不可であることも同時に示す文字
以下に例を示す。
- "-rwsr-Sr-x" はユーザークラスがリード/ライト/実行可能で setuid パーミッションも付与されている。グループクラスはリード可で setgid パーミッションが付与されている。その他クラスはリード/実行可能である。
八進表記(絶対モード)
UNIXのパーミッションの別の表記法として「八進表記」がある。八進表記は3桁か4桁の八進数値である。
3桁の八進表記では、各桁がユーザークラス、グループクラス、その他クラスに対応している。
これら3桁の値はパーミッションをビットとしてそれを集めたものである。つまり、ある値を加算することで特定のパーミッションが付与されていることを表す。
- 4 を加算するとリード可となる
- 2 を加算するとライト可となる
- 1 を加算すると実行可となる
これにより、不明確な組み合わせはなく、常にあるパーミッションの組み合わせを表示することができる。
以下は前述の記号表記での例に八進表記を対応させたものである:
- "-rwxr-xr-x" は3桁八進表記では 755 となる。
- "-rw-rw-r--" は3桁八進表記では 664 となる。
- "-r-x------" は3桁八進表記では 500 となる。
八進表記とその他のパーミッション
4桁の八進表記もある。この場合、前述の3桁表記に加えて、先頭に1桁加えて追加のパーミッションを表示する。システムによっては最初の1桁を省略して表示することができず、常に4桁表示となる(追加パーミッションが設定されていなければ、先頭の1桁はゼロとなる)。
この最初の桁は以下のビットの合計である:
- setuidビットは4を合計に加算する。
- setgidビットは2を合計に加算する。
- stickyビットは1を合計に加算する。
記号表記の例 "-rwsr-Sr-x" は 6745 と表示される。また、3桁表示の例は4桁表示では、それぞれ 0755、0664、0500 となる。
パーミッションの一覧表示
UNIX 系 OS におけるコマンド ls -l は、そのディレクトリにあるファイルなどのパーミッション(記号表記)の一覧を表示する。
コマンド stat -c '%n %a %A' は、パーミッションを八進表記として表示する。
- ^ File and Folder Permissions | Microsoft Learn
- ^ Windowsのアクセス制御リストACLとは?:Tech TIPS - @IT
- ^ 10.3 Interpreting Protection Codes OpenVMS User's Manual, HP
- ^ Native NFSv4 ACLs on Linux SuSE
- ^ NFSv4_ACLs FreeBSD
- ^ Resource Access Control Facility IBM
- ^ Red Hat Enterprise Linux 4: リファレンスガイド, ユーザープライベートグループ
- 1 ファイルパーミッションとは
- 2 ファイルパーミッションの概要
- 3 パーミッションの表記法
- 4 ユーザープライベートグループ
- ファイルパーミッションのページへのリンク