一部のオペレーティングシステムでは、各ファイルに任意の拡張ファイル属性を関連付けることができます。現在、Emacsは2つの特定の拡張ファイル属性セット、すなわちアクセス制御リスト(ACL)とSELinuxコンテキストの照会および設定をサポートしています。これらの拡張ファイル属性は、一部のシステムにおいて、前節で説明した基本的なUnixスタイルの権限よりも高度なファイルアクセス制御を適用するために使用されます。
ACLおよびSELinuxに関する詳細な解説は、本マニュアルの範囲外となります。本稿の目的においては、各ファイルに、ACLベースのファイル制御システムにおけるプロパティを指定するACL、および/またはSELinuxシステムにおけるプロパティを指定するSELinuxコンテキストを関連付けることができます。
この関数は、ファイル filename の ACL を返します。ACL の正確な Lisp
表現は規定されていません(今後の Emacs バージョンで変更される可能性があります)が、set-file-acl が acl
引数として受け取るものと同じです(ファイル名と属性の変更
を参照してください)。
基盤となるACL実装はプラットフォーム固有であり、GNU/LinuxおよびBSDではEmacsはPOSIX ACLインターフェースを使用し、MS-WindowsではネイティブのファイルセキュリティAPIを用いてPOSIX ACLインターフェースをエミュレートします。
ACLがサポートされていないか、ファイルが存在しない場合、戻り値はnilとなります。
この関数は、ファイル filename の SELinux コンテキストを (user role type range)
形式のリストとして返します。リストの各要素は、コンテキストのユーザー、ロール、タイプ、およびレンジにそれぞれ対応しており、Lisp
文字列として返されます。これらが実際に何を意味するかの詳細については、SELinux のドキュメントを参照してください。戻り値の形式は、set-file-selinux-context が引数 context に用いる形式と同じです(ファイル名と属性の変更 を参照)。
SELinux がサポートされていないか、ファイルが存在しない場合、戻り値は (nil nil nil
nil) となります。
この関数は、ファイル filename の Emacs
が認識する拡張属性のアリストを返します。現在は、ACL と SELinux
コンテキストの両方を取得する便利な手段となっており、返されたアリストを第2引数として関数 set-file-extended-attributes
を呼び出すことで、別のファイルに同じファイルアクセス属性を適用できます(ファイル名と属性の変更 を参照してください)。
要素の一つに (acl . acl) があり、acl は file-acl
が返すものと同じ形式となっています。
もう一つの要素は(selinux-context . context)であり、contextはfile-selinux-contextが返すものと同じ形式のSELinuxコンテキストです。