Re: user guide drafts: "Mounting File Systems"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2008-10-10 at 09:11 -0400, Stephen Smalley wrote:
> On Fri, 2008-10-10 at 17:26 +1000, Murray McAllister wrote:
> > Hi,
> > 
> > The following is a rough draft for the "Mounting File Systems" sections. 
> > Any comments and corrections are appreciated.
> > 
> > Thanks!
> > 
> > Mounting File Systems
> > 
> > By default, when a third extended file system (ext3) is mounted, the 
> 
> You should generalize this to "a filesystem that supports extended
> attributes, such as ext[234], jfs, xfs, or jffs2".
> 
> > files and directories on the file system are labeled with the file_t 
> > type.
> 
> Not exactly.  The correct statement is that a file that does not have a
> security context set on disk (due to being created on a non-selinux
> kernel) on a filesystem that supports extended attributes will be
> treated as having the file_t type (or more precisely, the security
> context associated with the file initial SID).  On a properly labeled
> filesystem, there should be no files with file_t.

might be worth mentioning that the context assigned to unlabeled files
on filesystems that supports xattrs can be set with defcontext=.   opps,
I see you did that later on, only as sds pointed out you didn't get it
quite right.

<aside> Dan, you always said you disliked how file_t meant there was no
label and unlabeled_t meant there was a bad label.  Maybe we could move
to using defcontext= to assign a type you like for at least the file_t
case... </aside>

> > * Context changes are written to disk, and are not lost if the file 
> > system is unmounted. Newly-created files and files copied to such a file 
> > system inherit the SELinux context specified with the -o defcontext 
> > option. For example, if a file system is mounted with the -o 
> > defcontext="system_u:object_r:httpd_sys_content_t:s0" option, and a new 
> > file is created on the mounted file system, that file is labeled with 
> > the httpd_sys_content_t type. If the file system is unmounted and then 
> > mounted without a context option, that file is still labeled with the 
> > httpd_sys_content_t type.

I didn't know this (am I supposed to admit that?)  I always thought
normal label inheritance still took place even with defcontext=.
Anyway, if you can double check that would be great...

mount -o httpd_sys_context_t
mkdir testdir/
chcon tmp_t testdir/
touch testdir/file
ls -lZ testdir/

if file is httpd_sys_context_t you are right.  if file is tmp_t normal
inheritance took place....

> I'm pretty sure that James and/or Eric have written description of all
> of the context mount options before.
> fscontext= sets the filesystem security context, a context that is
> applied for certain permission checks on the entire filesystem like
> mounting as well as used to control what file security contexts can
> exist within the filesystem.

Its not relevant to 99% of people at this time (same for defcontext and
rootcontext), but that might change if we start making better policies
to protect against accidental information leakage. All three should get
a short blurb, context= needs the most description.  The most
interesting use of fscontext is the 'associate' permission check.  It
allows you to say that things labeled company_confidential_t are not
allowed to be saved on a filesystem with fscontext=removable_media_t.
We don't make much (any?) use of this feature, but fscontext is a very
general label controlling the entire fs, can it be mounted, can certain
data be written to it, etc, etc...

> rootcontext= sets the security context for the root directory of the
> filesystem, useful for e.g. tmpfs mounts where you want the root to take
> on a specific context but allow other files within it to have individual
> contexts.

again, not brilliantly interesting for most people as usually dan just
fixes it with a restorecon somewhere in the init scripts for most
people.  I find it most useful when mounting tmpfs somewhere.  Say you
want to make /usr/src/redhat/BUILD a tmpfs.  Easiest way to make sure
you don't see any denials or need extra magic would be to include a
rootcontext=src_t in the fstab...

> 
> > # Is there any common use cases that should have examples here, such as 
> > mounting a cd and sharing it via http or nfs?

exporting a FAT fs using http is common enough and uses context=

a discussion of multiple nfs mounts using context= could be useful.  If
you don't know why it would be usefull context me off list and I'll
explain all the nfs mount magic   :)

-Eric


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.

[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux