RE: Making a python/shell script run in httpd_t (or some other domain)

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

 



 

> -----Original Message-----
> From: fedora-selinux-list-bounces@xxxxxxxxxx 
> [mailto:fedora-selinux-list-bounces@xxxxxxxxxx] On Behalf Of 
> Forrest Taylor
> Sent: Saturday, March 10, 2007 11:56 AM
> To: fedora-selinux-list@xxxxxxxxxx
> Subject: Making a python/shell script run in httpd_t (or some 
> other domain)
> 
> I am trying to make a python script run in the httpd_t domain 
> on RHEL5 RC4.  I have assigned the script the httpd_exec_t 
> type.  I searched the archives, and I saw an earlier post 
> that stated that I should use the -E option to python:
> 
> #!/usr/bin/python -E
> 
> I see the same entry in python scripts like setroubleshootd.  
> However, when I try to run my script (or setroubleshootd, for 
> that matter) directly, it runs in unconfined_t.  I have the 
> same problem with shell executables.  Any tips?
> 

You need to make sure you have all the rules required for your source
domain to transition to your target domain. The unconfined_t domain
generally does not transition; it is designed to run most things in its
domain which has a wide range of permissions (hence the name
"unconfined"). 

You need these three rules to permit a transition:
allow source_domain target_domain:process transition;
allow source_domain entrypoint_type:file {read getattr execute};
allow target_domain entrypoint_type:file entrypoint;

If you want the transition to be automatic, you also need a
type_transition rule:
type_transition source_domain entrypoint_type:process target_domain;

You can use apol's domain transition analysis to test your policy to
make sure you have all the necessary rules. There is also a good
explanation of domain transitions in the Help menu. (Or Chapter 5 of
_Selinux by Example_ :))

You also probably don't want to run your script in httpd_t, but in a
more restricted domain.

> run_init will run as expected, but it does also ask for the 
> root password.  I know that I could change the pam.d/ entry, 
> but I don't want to do that at this point.
> 
> I created an init script that simply calls the executable.  
> This works as expected, as long as the script starts with the 
> interpreter (e.g., #!/bin/bash).  If I leave out that line, 
> it does not transition.  Any idea why?
> 
> Thanks,
> 
> Forrest
> 

--
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