4.4. 権限のない SELinux ユーザーの非標準共有ディレクトリーへのアクセスを管理する
非特権 SELinux ユーザー user_u に対して、非標準の共有ディレクトリーへのアクセスを設定します。このプロセスでは、ディレクトリに対して適切な SELinux ファイルタイプを特定、マッピングすることで、アクセス制限を行います。
user_u ユーザーには、デフォルトのロール user_r とデフォルトのドメイン user_t が付与されています。関連するコマンドと汎用的な非特権 SELinux ユーザー user_u の詳細は、システム上の seinfo(1)、semanage-fcontext(8)、user_selinux(8) の man ページを参照してください。
前提条件
-
selinux-policy-docおよびsetools-consoleパッケージがシステムにインストールされている。
手順
ターミナルで
user_selinux(8)man ページを開きます。$ man user_selinuxMANAGED FILESセクションで、お客様の状況に合った属性またはタイプを見つけます。たとえば、user_home_type属性です。オプション: 属性に割り当てられているすべてのタイプをリスト表示するには、
-xおよび-aオプションを指定したseinfoコマンドを使用します。次に例を示します。$ seinfo -x -a user_home_type Type Attributes: 1 attribute user_home_type; … chrome_sandbox_home_t config_home_t cvs_home_t data_home_t dbus_home_t fetchmail_home_t gconf_home_t git_user_content_t …対応するタイプの候補 (この例では
data_home_tタイプ) を特定したら、その SELinux マッピングを確認します。$ semanage fcontext -l | grep data_home_t … /root/\.local/share(/.*)? all files system_u:object_r:data_home_t:s0 …対応するタイプを、
user_uからアクセス可能にするディレクトリー (例:/shared-data) にマップします。$ semanage fcontext -a -t data_home_t '/shared-data(/.*)?'
検証
設定したディレクトリーのマッピングを確認します。
# semanage fcontext -l | grep "shared-data" /shared-data(/.*)? all files system_u:object_r:data_home_t:s0-
user_uSELinux ユーザーにマップされた Linux ユーザーとしてログインし、ディレクトリーにアクセスできることを確認します。