files contexts override via policy module

Daniel J Walsh dwalsh at redhat.com
Tue Nov 20 13:39:57 UTC 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Laurent Jacquot wrote:
> Hello,
> I am sure this is a FAQ or a feature, but I want to know how to work
> around:
> 
> I have cxoffice installed in my F8 home dir and I want some lib labeled
> as textrel_shlib_t, but I cannot override the default user_home_t home
> label via a policy module. 
> 
> NOTE1 it works if the directory is not under /home
> NOTE2 there is nothing in the logs if it fails
> NOTE3 It has been so since the introduction of modular policy in selinux
> 
> What is what I have tried so far in F8.
> [root at jack sel]#cat local.fc
> #cxoffice
> #/home/alex/.cxoffice/dotwine/drive_c(/.*)?/.*\.exe --
> system_u:object_r:textrel_shlib_t:s0
> 
> /home/alex/cxoffice/lib/wine/kernel32.dll.so --
> system_u:object_r:textrel_shlib_t:s0
> 
> [root at jack sel]#semodule_package -o local.pp -m local.mod -f local.fc
> [root at jack sel]#semodule -i local.pp
> [root at jack sel]#ls -Z /home/alex/cxoffice/lib/wine/kernel32.dll.so
> -rwxr-xr-x  alex alex
> system_u:object_r:user_home_t:s0 /home/alex/cxoffice/lib/wine/kernel32.dll.so
> [root at jack sel]#restorecon /home/alex/cxoffice/lib/wine/kernel32.dll.so
> [root at jack sel]#ls -Z /home/alex/cxoffice/lib/wine/kernel32.dll.so
> -rwxr-xr-x  alex alex
> system_u:object_r:user_home_t:s0 /home/alex/cxoffice/lib/wine/kernel32.dll.so
> 
> 
> (If i use the system-config-selinux UI, I can see the new entry in the
> tab context among all the regexp)
> 
> Using semanage, it works:
> [root at jack sel]#semodule -r local
> [root at jack sel]#semanage fcontext -a -t
> textrel_shlib_t /home/alex/cxoffice/lib/wine/kernel32.dll.so
> [root at jack sel]#ls -Z /home/alex/cxoffice/lib/wine/kernel32.dll.so
> -rwxr-xr-x  alex alex
> system_u:object_r:user_home_t:s0 /home/alex/cxoffice/lib/wine/kernel32.dll.so
> [root at jack sel]#restorecon /home/alex/cxoffice/lib/wine/kernel32.dll.so
> [root at jack sel]#ls -Z /home/alex/cxoffice/lib/wine/kernel32.dll.so
> -rwxr-xr-x  alex alex
> system_u:object_r:textrel_shlib_t:s0 /home/alex/cxoffice/lib/wine/kernel32.dll.so
> 
> and the custom rule appears in system-config-selinux UI at the end of
> the policy.
> 
> So how do I have my module install my contexts the same way as semanage?
> Should I bugzilla it?
> 
> BTW, how do system-config-selinux browse the file context policy? Is it
> possible to see also the rules and type definition?
> 
> TIA
>         jk
> 
> --
> fedora-selinux-list mailing list
> fedora-selinux-list at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-selinux-list
This looks like a bug in libsemanage or in the file context labeling
algorithm.

I believe matchpatcon is reading in file_contexts,
file_contexts.homedirs, file_contexts.local and taking the last entry.


So using semodule to add a pp file updates the file_contexts file, in
which case the homedirs is overriding.  semanage fcontext updates the
file_contexts.local.


If you tried

HOME_DIR/\.cxoffice/dotwine/drive_c(/.*)?/.*\.exe --
system_u:object_r:textrel_shlib_t:s0

It should update the file_context.homedirs file.




-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFHQuOtrlYvE4MpobMRAuuCAJ4sXPEh9DMDNxUV+avHT09uvAa62QCfbneq
YBf3ZtQ4UGTOrOys4K4FGps=
=VT+4
-----END PGP SIGNATURE-----




More information about the fedora-selinux-list mailing list