Re: Helper program for a daemon

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

 



Al Pacifico wrote:
I (a greenhorn with selinux) am writing a policy for a daemon that streams music files over my home network to a music player client (a Slimdevices Squeezebox). My OS is FC5.

The main daemon (/usr/sbin/slimserver) is a perl script that serves the music files and is started with an init script. My questions have to do with a secondary program (/usr/sbin/slimserver-scanner, also a perl script) that scans the music on the server, reading mp3 tags and such, and generates a database of stored music that is stored in a MySQL database. /usr/sbin/slimserver-scanner is invoked by the /usr/sbin/slimserver daemon and might be invoked by the user (although I can't recall ever doing so in several years of owning a Squeezebox).

I've been following the example posted by Dan Walsh in a blog at http://danwalsh.livejournal.com/8707.html?thread=39171 which has been extremely helpful.

My (2) questions:
1. What is the appropriate file context for the scanner program?
system_u:object_r:sbin_t?
system_u:object_r:slimserver_t?
system_u:object_r:slimserver_exec_t?

That depends on your security goals. If you want the slimserver-scanner to have the same privs as slimserver you would label it sbin_t and allow slimserver to corecmd_exec_sbin(). If you want to go with least privs, you would create a new policy for slimserver-scanner (slimserver_scanner_t with file context of slimserver_scanner_exec_t) and then add a rule to slimserver_t to domtrans
slimserver_scanner_domtrans(slimserver_t)

The generated slimserver.fc file contains:
# slimserver executable will have:
# label: system_u:object_r:slimserver_exec_t
# MLS sensitivity: s0
# MCS categories: <none>

/usr/sbin/slimserver -- gen_context(system_u:object_r:slimserver_exec_t,s0) /var/run/slimserver.pid gen_context(system_u:object_r:slimserver_var_run_t,s0) /var/log/slimserver gen_context(system_u:object_r:slimserver_var_log_t,s0)

and the slimserver.if file contains:
interface(`slimserver_domtrans',`
        gen_require(`
                type slimserver_t, slimserver_exec_t;
        ')

        domain_auto_trans($1,slimserver_exec_t,slimserver_t)

        allow $1 slimserver_t:fd use;
        allow slimserver_t $1:fd use;
        allow slimserver_t $1:fifo_file rw_file_perms;
        allow slimserver_t $1:process sigchld;
')

2. There is no reason to add the scanner program be added to slimserver.fc that was generated by policygentool, is there?
Only if you are creating a context for slimserver_scanner_exec_t, otherwise just let it be labeled sbin_t.
The file itself just needs to be labeled appropriately, right? Or does that file play some role in policy compilation in a step that I did not explicitly executed when I invoked 'make -f /usr/share/selinux/devel/Makefile'?

Thanks in advance.
-al
--
Al Pacifico
Seattle, WA
------------------------------------------------------------------------

--
fedora-selinux-list mailing list
fedora-selinux-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-selinux-list

--
fedora-selinux-list mailing list
fedora-selinux-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-selinux-list

[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux