Re: lgetxattr()/getxattr() return different values on a file labelledwith selinux disabled

From: Stephen Smalley
Date: Fri Mar 15 2013 - 09:08:42 EST


On 03/15/2013 06:54 AM, Thomas COUDRAY wrote:
Hi,
I encounter trouble that I can't explain when labelling my files.
Here are steps to reproduce (on both 3.2.37 and 3.7.3, with selinux, on
an ext4 fs):
0 - have a regular file "f", with a "before_t" security.selinux attribute
1 - reboot with selinux=0
2 - change the label to "after_t" (setfattr or chcon)
3 - both "ls -Z" (who calls lgetxattr(2)) and "getfattr -n
security.selinux" (who calls getxattr(2)) show "after_t"
4 - reboot with selinux enabled
5 - now ls prints "before_t", and getfattr "after_t".

I ran a small test that calls both syscalls (lgetxattr/getxattr), I
get "before_t" as expected
If I touch /.autorelabel, both ls/getfattr give "before_t".

f is truly a regular file and not a symlink pointing to a regular file?
before_t and after_t are both defined in the policy?
before_t and after_t are not type aliases of each other?
What are the credentials (capabilities and SELinux security context/permissions) of the process running the ls and getfattr commands?
Any relevant messages from SELinux in dmesg output?


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/