SELinux: Позволете на bash скрипт да се изпълнява в строг режим

Имам сървър RHEL 5.5 с инсталиран SELinux в режим strict. В момента системата е в режим permissive. Опитвам се да напиша прост shell скрипт, да кажем setest.sh и искам да го стартирам изрично от bash терминала.

В разрешителен режим мога да го направя, но се регистрира като отказано в журналите за проверка:

Sep  6 12:49:58 rhel-vm-003 kern 5 kernel: type=1400 audit(1315293598.916:45417): 
avc:  denied  { execute_no_trans } for  pid=26602 comm="bash" path="/var/tmp/setest.sh"
dev=sda1 ino=1017036 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023
tcontext=system_u:object_r:test_policy_exec_t:s0 tclass=file

Това очевидно означава, че няма да мога да стартирам скрипта от bash конзолата, след като превключа SELinux в режим на прилагане. Какво правило за преход на разрешаване/домейн трябва да добавя в моите модули за политики, така че това да може да работи, когато SELinux се прилага?

Поздрави,
Нагендра У М


person Nagendra U M    schedule 06.09.2011    source източник


Отговори (1)


Когато стартирам търсене в мрежата на „test_policy_exec_t“, единственото попадение, което получавам, е тази нишка, така че предполагам, че това е потребителски контекст, който сте създали. Просто променете контекста на нещо нормално и ще можете да изпълнявате скриптовете.

На моя сървър RHEL 5 със sepolicy по подразбиране следното не генерира нищо в журнала за проверка.

 $ echo -e '#!/bin/sh\necho Hi!' > /var/tmp/setest.sh
 $ ls -Z /var/tmp/setest.sh
 -rw-r--r--  polgar users user_u:object_r:tmp_t            /var/tmp/setest.sh
 $ /var/tmp/setest.sh
 Hi!
person nortally    schedule 30.12.2011