ファイルパーミッション(file permission)とは、ファイルごとに定義された、読み出し・書込みなどのアクセスに対する許可情報。通常は、ファイルシステム内のファイルごとに、特定のユーザーやグループに対してアクセス権を設定する。これによって、ユーザーごとのファイルシステムの見え方に影響を与え、ファイルシステムに対する変更を制限する。単にパーミッションとも言う。Unix系やPOSIX準拠のシステムは、Linuxや Mac OS X も含めて個々のファイルを単純な方式で管理する。それらシステムの多くは何らかのアクセス制御リスト (ACL) もサポートしており、独自方式(例えば、古いHP-UXのACL)、POSIX.1e のACL方式(かつてPOSIXのドラフト版で規定されたが結局規格化されなかった)、NFSv4標準の一部のACLなどがある。MS-DOS系のオペレーティングシステム(PC DOS、Windows 95、Windows 98、Windows Meなどを含む)はパーミッションを持たない。単に「リードオンリー(読み込みのみ)」というファイル属性を任意のユーザーがファイル単位に設定できるだけである。リードオンリー属性を設定しても、どのユーザーでもプログラムでもその設定を変更できるので、ファイルを変更したり削除したりするのを防げない。また、ユーザーがファイルを読めないように設定する属性が存在しない(隠すことはできるが、パス名を知っていれば読むことは可能)。他のMS-DOS互換OS(DR-DOS 3.31 およびそれ以降、PalmDOS、Novell DOS、OpenDOS、、4680 OS、、、Concurrent DOS、Datapac System Manager、IMS REAL/32 など)は、ファイルやディレクトリ毎にリード/ライト/実行/削除のファイルパーミッションをFATボリューム上でサポートしている。FlexOS、4680 OS、4690 OS 以外のOSでは、ファイルやディレクトリ毎にパスワードも設定できる。DR DOS、PalmDOS、Novell DOS、OpenDOS 以外のOSでは、ファイルやディレクトリ毎に「ワールド/グループ/所有者」という所有権のクラスをサポートしている。なお、DR DOS 6.0 およびそれ以降、PalmDOS、Novell DOS、OpenDOS は個人用OSなので、マルチユーザー用セキュリティモジュールをロードしないと所有権クラスは使用できない。OpenVMSや Windows NT との派生OS(Windows 2000、Windows XP など)はアクセス制御リスト (ACL) を使用してもっと複雑で多様なパーミッションを管理している。OpenVMSはまたUnix系と同様のパーミッション方式も使えるが、Unix系よりも複雑である。後述のクラスが4つあり(システム、オーナー、グループ、ワールド)、アクセスパーミッションも4つある(リード、ライト、実行、削除)。クラスは包含関係にあり、ワールドにはグループが含まれ、グループにはオーナーが含まれる。システムクラスにはシステムユーザーしか属さない(Unix系のスーパーユーザーに相当する)。古い Mac OS はDOS系やDOSベースのWindowsと同様パーミッションを持たないが、"Protected" という属性だけをサポートしていた。AmigaのAmigaDOSは当時のシングルユーザーOSとしては進んだパーミッション体系をサポートしていた。AmigaOS 1.x では、アーカイブ/リード/ライト/実行/削除というパーミッションを備えていた。AmigaOS 2.x およびそれ以降では、さらに Hold/Script/Pure というパーミッションもサポートしている。Mac OS X versions 10.3 ("Panther") およびそれ以前は、POSIX準拠のパーミッションを使用していた。10.4 ("Tiger") 以降では NFSv4 ACL もサポートしている。従来からのUnix系のファイルパーミッション方式もサポートしており、"Apple Mac OS X Server version 10.4+ File Services Administration Manual" では従来からのパーミッション方式のみを使用することを推奨していた。また、Mac OS での "Protected" 属性もサポートしている。Solaris でのACLサポートは使用するファイルシステムに依存する。古いUFSは POSIX.1e ACL をサポートしており、ZFSは NFSv4 ACL のみをサポートしている。Linuxは POSIX.1e ACL をサポートしている。ext3ファイルシステム向けに実験的に NFSv4 ACL をサポートした例がある。FreeBSDは UFS では POSIX.1e ACL をサポートし、UFS と ZFS では NFSv4 ACL をサポートしている。IBM z/OS ではファイルセキュリティを RACF (Resource Access Control Facility) で実装している。Unix系システムのパーミッションは3つの「クラス」に分けて管理される。そのクラスとは「ユーザー; user」、「グループ; group」、「その他; others」である。事実上、UNIXのパーミッションはアクセス制御リストを単純化したものと言える。UNIXのファイルシステムでは、全てのファイルやディレクトリは特定のユーザーが「所有」している。オブジェクトの所有者がその「ユーザークラス」に対応する。ユーザークラスのパーミッションはその特定のユーザーにのみ適用される。ファイルにはグループも対応付けられていて、それが「グループクラス」に対応する。グループクラスのパーミッションはそのグループのメンバー(所有者以外)にのみ適用される。どちらでもないそれ以外のユーザーには「その他クラス」のパーミッションが適用される。あるユーザーに適用される実際のパーミッションは、これらの論理的優先順位に従って決定される。例えば、あるファイルを所有するユーザーはグループやその他のクラスがどうであれ、ユーザークラスのパーミッションの適用を受ける。Unix系システムでは、いずれのクラスにも以下の3種類のパーミッションが存在する。パーミッションがセットされていないと、その権利は行使できない。ACLベースのシステムとは異なり、Unix系システムのパーミッションは「継承」されない。ディレクトリ内のファイル群はディレクトリと同じパーミッションであるとは限らない。割り当てられるパーミッションはumaskを使って決定される。Unix系システムは他に3種類のパーミッション(またはモード)を持つ。これらの特殊なパーミッションはクラスに寄らず、そのファイルやディレクトリ全体に適用される。これらのパーミッションはそれぞれ1ビットで表されることから、「setuidビット」、「setgidビット」、「スティッキービット」とも呼ばれる。UNIXのパーミッション方式を表示する方法は様々である。最も一般的な形式が記号表記 (symbolic notation) である。この形式ではパーミッションを10文字の文字列で表示する。先頭の一文字はファイルの種別を表す:各クラスのパーミッションは3文字で表示される。1番目の3文字でユーザークラスを表す。2番目でグループクラスを表す。3番目でその他クラスを表す。その3文字は順にリード、ライト、実行パーミッションをそれぞれ表す。記号表記の実例を以下に示す。その他のパーミッションが加わると、記号表記は若干複雑になる。以下に例を示す。UNIXのパーミッションの別の表記法として「八進表記」がある。八進表記は3桁か4桁の八進数値である。3桁の八進表記では、各桁がユーザークラス、グループクラス、その他クラスに対応している。これら3桁の値はパーミッションをビットとしてそれを集めたものである。つまり、ある値を加算することで特定のパーミッションが付与されていることを表す。これにより、不明確な組合せはなく、常にあるパーミッションの組合せを表示することができる。以下は前述の記号表記での例に八進表記を対応させたものである:4桁の八進表記もある。この場合、前述の3桁表記に加えて、先頭に1桁加えて追加のパーミッションを表示する。システムによっては最初の1桁を省略して表示することができず、常に4桁表示となる(追加パーミッションが設定されていなければ、先頭の1桁はゼロとなる)。この最初の桁は以下のビットの合計である:記号表記の例 "-rwsr-Sr-x" は 6745 と表示される。また、3桁表示の例は4桁表示では、それぞれ 0755、0664、0500 となる。ls -l は、記号表記の一覧を表示する。stat -c '%n %a %A' で八進表記を表示できる。一部システムは伝統的なPOSIXのユーザーとグループのモデルから離れ、各ユーザーごとに新たなグループ「ユーザープライベートグループ」を生成する。ユーザープライベートグループは様々な理由で好ましいとされている。例えば、通常のUNIXではumaskを 022 に設定してグループの書き込み権をマスクするが、ユーザー毎にグループを作るのでumaskを 002 にしてもかまわない。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。