Next: , Previous: , Up: Information about Files   [Contents][Index]


24.6.5 Extended File Attributes

いくつかのオペレーティングシステムでは、それぞれのファイルを任意の拡張ファイル属性(extended file attributes)に関連付けることができます。現在のところ、Emacsは拡張ファイル属性のうち2つの特定セット(ACL: Access Control List、およびSELinuxコンテキスト)にたいする問い合わせと設定をサポートします。これらの拡張ファイル属性は、前のセクションで議論した“Unixスタイル”の基本的なパーミッションより洗練されたファイルアクセス制御を強いるために、いくつかのシステムで利用されます。

ACLとSELinuxについての詳細な解説は、このマニュアルの範囲を超えます。わたしたちの目的のためには、それぞれのファイルはACL(ACLベースのファイル制御システムの元でACLのプロパティを指定)および/またはSELinuxコンテキスト(SELinuxシステムの元でSELinuxのプロパティを指定)に割り当てることができる、という理解でよいでしょう。

Function: file-acl filename

この関数は、ファイルfilenameにたいするACLをリターンする。ACLにたいする正確なLisp表現は不確定(かつ将来のEmacsバージョンで変更され得る)だが、これはset-file-aclが引数aclにとる値と同じである(Changing Filesを参照)。

根底にあるACL実装はプラットフォーム固有である。EmacsはGNU/LinuxおよびBSDではPOSIX ACLインターフェイスを使用し、MS-WindowsではネイティブのファイルセキュリティAPIをPOSIX ACLインターフェイスでエミュレートする。

ACLサポートなしでEmacsがコンパイルされた場合、ファイルが存在しないかアクセス不能な場合、またはその他の理由によりEmacsがACLエントリーを判断できない場合、リターン値はnilである。

Function: file-selinux-context filename

この関数は、ファイルfilenameのSELinuxコンテキストを、(user role type range)という形式のリストでリターンする。リストの要素は、そのコンテキストのユーザー、ロール、タイプ、レンジを文字列として表す値である。これらの実際の意味についての詳細は、SELinuxのドキュメントを参照のこと。リターン値は、set-file-selinux-contextcontext引数でとるのと同じ形式である(Changing Filesを参照)。

SELinuxサポートなしでEmacsがコンパイルされた場合、ファイルが存在しないかアクセス不能な場合、またはシステムがSELinuxをサポートしない場合、リターン値は(nil nil nil nil)である。

Function: file-extended-attributes filename

この関数は、Emacsが認識するファイルfilenameの拡張属性をalistでリターンする。現在のところ、この関数はACLとSELinuxの両方を取得するための便利な方法としての役目を果たす。他のファイルに同じファイルアクセス属性を適用するために、リターンされたalistを2つ目の引数としてset-file-extended-attributesを呼び出すことができる(Changing Filesを参照)。

要素のうちの1つは(acl . acl)で、aclfile-aclがリターンするのと同じ形式である。

他の要素は(selinux-context . context)で、contextfile-selinux-contextがリターンするのと同じ形式である。