Partitions Mounted by fstab

Stephen Smalley sds at tycho.nsa.gov
Wed Mar 5 17:02:40 UTC 2008


On Wed, 2008-03-05 at 11:59 -0500, Stephen Smalley wrote:
> On Wed, 2008-03-05 at 16:12 +0000, Arthur Dent wrote:
> > On Wed, Mar 05, 2008 at 10:47:15AM -0500, Stephen Smalley wrote:
> > 
> > Hi Stephen,
> > 
> > > > 
> > > > As a mater of interest, I have a procmail recipe which writes a copy of every
> > > > mail I receive to a backup area on my /dev/sda8 partition, mounted as
> > > > /mnt/backup/ by fstab. (It is an ext3 partition).
> > > > 
> > > > I have tried doing:
> > > > "restorecon -v -R /mnt/backup"
> > > > and even:
> > > > "fixfiles relabel"
> > > > 
> > > > on this partition, but I gather this will not work. I think that I must
> > > > somehow define a policy for this (and probably other) partition(s), but I am
> > > > unclear as to how to go about this.
> > > 
> > > You might try something like this, assuming that you only store mail
> > > files under /mnt/backup and only procmail requires access:
> > > 
> > > semanage fcontext -a -t mail_spool_t "/mnt/backup(/.*)?"
> > > restorecon -v -R /mnt/backup
> > > 
> > Thanks! This is really helpful. 
> > 
> > > If you need other things to be able to access it, then we'll have to
> > > know more to decide how to label it, or you could possibly move it to a
> > > subdir of /mnt/backup like /mnt/backup/spool that can be devoted to
> > > procmail's use.
> > > 
> > 
> > Well, before I try the above commands...
> > 
> > Generally it is only procmail that needs access, however, I have this file
> > "rotated" by logrotate (run as root) on a monthly basis. It is rotated with
> > the "date" extension and that file is archived by a cron job (root) to DVD.
> > 
> > Oh, and I have a daily backup routine that uses "tar" run from a cron job that
> > also includes this directory...
> > 
> > Will those things invalidate your suggested solution?
> 
> You'll likely need a local policy module then to permit such access
> in addition to the commands above.
> Maybe something like this:
> 
> # cat mymailbackup.te
> policy_module(mybackup, 1.0)
> require {
> 	# Symbols defined outside of this module.
> 	type system_crond_t;
> 	type user_crond_t;
> 	type mail_spool_t;
> }
> 
> # Mark mail_spool_t as a log file that can be managed by logrotate.
> logging_log_file(mail_spool_t)
> # Let system and user cron jobs read it.
> read_files_pattern(system_crond_t, mail_spool_t, mail_spool_t)
> read_files_pattern(user_crond_t, mail_spool_t, mail_spool_t)
> 
> # make -f /usr/share/selinux/devel/Makefile mybackup.pp
> # semodule -i mybackup.pp

Actually, did you need write access to /mnt/backup from the cron job, or
only read access?  The above only gives read access.

Also, on second thought, I suppose that if you are running these as user
cron jobs, they'll run unconfined_t under the default targeted policy
and thus not require any additional rules at all.  So you may only need
the logging_log_file() part.

-- 
Stephen Smalley
National Security Agency




More information about the fedora-selinux-list mailing list