From: bigon@debian.org (Laurent Bigonville) Date: Wed, 19 Mar 2014 23:17:36 +0100 Subject: [refpolicy] [PATCH 1/3] Create new xattrfs attribute and fs_*_all_xattr_fs() interfaces Message-ID: <1395267458-8368-1-git-send-email-bigon@debian.org> To: refpolicy@oss.tresys.com List-Id: refpolicy.oss.tresys.com From: Laurent Bigonville Create a new attribute and fs_*_all_xattr_fs() interfaces that will be used for pseudo filesystems that support xattr --- policy/modules/kernel/filesystem.if | 200 ++++++++++++++++++++++++++++++++++++ policy/modules/kernel/filesystem.te | 1 + 2 files changed, 201 insertions(+) diff --git a/policy/modules/kernel/filesystem.if b/policy/modules/kernel/filesystem.if index 8416beb..36cb57b 100644 --- a/policy/modules/kernel/filesystem.if +++ b/policy/modules/kernel/filesystem.if @@ -108,6 +108,206 @@ interface(`fs_exec_noxattr',` ######################################## ## +## Transform specified type into a filesystem +## type which has extended attribute +## support. +## +## +## +## Domain allowed access. +## +## +# +interface(`fs_xattr_type',` + gen_require(` + attribute xattrfs; + ') + + fs_type($1) + + typeattribute $1 xattrfs; +') + +######################################## +## +## Mount a pseudo filesystem which +## has extended attributes. +## +## +## +## Domain allowed access. +## +## +# +interface(`fs_mount_all_xattr_fs',` + gen_require(` + attribute xattrfs; + ') + + allow $1 xattrfs:filesystem mount; +') + +######################################## +## +## Remount a pseudo filesystem which +## has extended attributes. +## This allows some mount options +## to be changed. +## +## +## +## Domain allowed access. +## +## +# +interface(`fs_remount_all_xattr_fs',` + gen_require(` + attribute xattrfs; + ') + + allow $1 xattrfs:filesystem remount; +') + +######################################## +## +## Unmount a pseudo filesystem which +## has extended attributes. +## +## +## +## Domain allowed access. +## +## +# +interface(`fs_unmount_all_xattr_fs',` + gen_require(` + attribute xattrfs; + ') + + allow $1 xattrfs:filesystem unmount; +') + +######################################## +## +## Get the attributes of pseudo +## filesystems which have extended +## attributes. +## +## +##

+## Allow the specified domain to +## get the attributes of a pseudo +## filesystems which have extended +## attributes. +## Example attributes: +##

+## +##
+## +## +## Domain allowed access. +## +## +## +## +# +interface(`fs_getattr_all_xattr_fs',` + gen_require(` + attribute xattrfs; + ') + + allow $1 xattrfs:filesystem getattr; +') + +######################################## +## +## Do not audit attempts to +## get the attributes of a pseudo +## filesystem which has extended +## attributes. +## +## +## +## Domain to not audit. +## +## +# +interface(`fs_dontaudit_getattr_all_xattr_fs',` + gen_require(` + attribute xattrfs; + ') + + dontaudit $1 xattrfs:filesystem getattr; +') + +######################################## +## +## Allow changing of the label of a +## pseudo filesystem with extended +## attributes using the context= +## mount option. +## +## +## +## Domain allowed access. +## +## +# +interface(`fs_relabelfrom_all_xattr_fs',` + gen_require(` + attribute xattrfs; + ') + + allow $1 xattrfs:filesystem relabelfrom; +') + +######################################## +## +## Get the pseudo filesystem quotas of +## a filesystem with extended attributes. +## +## +## +## Domain allowed access. +## +## +## +# +interface(`fs_get_all_xattr_fs_quotas',` + gen_require(` + attribute xattrfs; + ') + + allow $1 xattrfs:filesystem quotaget; +') + +######################################## +## +## Set the pseudo filesystem quotas of +## a filesystem with extended attributes. +## +## +## +## Domain allowed access. +## +## +## +# +interface(`fs_set_all_xattr_fs_quotas',` + gen_require(` + attribute xattrfs; + ') + + allow $1 xattrfs:filesystem quotamod; +') + + +######################################## +## ## Mount a persistent filesystem which ## has extended attributes, such as ## ext3, JFS, or XFS. diff --git a/policy/modules/kernel/filesystem.te b/policy/modules/kernel/filesystem.te index d9cc21f..4207e8f 100644 --- a/policy/modules/kernel/filesystem.te +++ b/policy/modules/kernel/filesystem.te @@ -8,6 +8,7 @@ policy_module(filesystem, 1.18.0) attribute filesystem_type; attribute filesystem_unconfined_type; attribute noxattrfs; +attribute xattrfs; ############################## # -- 1.9.1