[apparmor] [PATCH 09/11] Fix permissions attached to the bare file keyword
Steve Beattie
steve at nxnw.org
Thu Mar 8 19:07:49 UTC 2012
On Wed, Mar 07, 2012 at 06:17:28AM -0800, John Johansen wrote:
> file,
>
> was not given the correct permissions. It was only being given the owner
> set of permissions. This would result in rejects when trying look at
> files owned by other users
>
> Signed-off-by: John Johansen <john.johansen at canonical.com>
Acked-By: Steve Beattie <sbeattie at ubuntu.com>
I was unaware of this syntactic sugar. Here are testcases that exercise
it, at least for read-write permissions, and at least trigger the issue
that your patch intends to address.
---
tests/regression/apparmor/mkprofile.pl | 9 ++++++---
tests/regression/apparmor/open.sh | 12 ++++++++++++
2 files changed, 18 insertions(+), 3 deletions(-)
Index: b/tests/regression/apparmor/mkprofile.pl
===================================================================
--- a/tests/regression/apparmor/mkprofile.pl
+++ b/tests/regression/apparmor/mkprofile.pl
@@ -164,9 +164,10 @@ sub gen_file($) {
my $rule = shift;
my @rules = split (/:/, $rule);
# default: file rules
- if (@rules != 2) {
- (!$nowarn) && print STDERR "Warning: invalid file access '$rule', ignored\n";
- } else {
+ if (@rules == 1) {
+ # support raw rules
+ push (@{$output_rules{$hat}}, " $rules[0],\n");
+ } elsif (@rules == 2) {
if ($escape) {
$rules[0]=~ s/(["[\]{}\\\:\#])/\\$1/g;
$rules[0]=~ s/(\#)/\\043/g;
@@ -176,6 +177,8 @@ sub gen_file($) {
} else {
push (@{$output_rules{$hat}}, " $rules[0] $rules[1],\n");
}
+ } else {
+ (!$nowarn) && print STDERR "Warning: invalid file access '$rule', ignored\n";
}
}
Index: b/tests/regression/apparmor/open.sh
===================================================================
--- a/tests/regression/apparmor/open.sh
+++ b/tests/regression/apparmor/open.sh
@@ -54,3 +54,15 @@ runchecktest "OPEN R+dac_override" fail
rm -f ${file}
genprofile $file:$badperm2
runchecktest "OPEN W (create)" fail $file
+
+# This is a test where using just a raw 'file,' rule allowing all file
+# access
+genprofile file
+runchecktest "OPEN 'file' RW" pass $file
+
+# this test is to make sure the raw 'file' rule allows access to things
+# that are not covered by the owner rule
+chown nobody $file
+chmod 666 $file
+genprofile file
+runchecktest "OPEN 'file' RW" pass $file
--
Steve Beattie
<sbeattie at ubuntu.com>
http://NxNW.org/~steve/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20120308/686f2949/attachment.pgp>
More information about the AppArmor
mailing list