SELinux: разрешить выполнение сценария bash в строгом режиме.

У меня есть сервер RHEL 5.5 с SELinux, установленным в режиме strict. В настоящее время система находится в режиме permissive. Я пытаюсь написать простой сценарий оболочки, скажем, 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