SELinux:允许bash脚本在严格模式下运行

我有一个RHEL 5.5服务器,在 strict 模式下安装了SELinux . 系统目前处于 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

这显然意味着一旦我将SELinux切换到强制模式,我将无法从bash控制台运行脚本 . 我应该在策略模块中添加哪些允许/域转换规则,以便在强制执行SELinux时这可以工作?

问候,
Nagendra U M

回答(1)

2 years ago

当我在'test_policy_exec_t'上运行网络搜索时,我得到的唯一一个就是这个帖子,所以我认为它是你创建的自定义上下文 . 只需将上下文更改为正常情况,您就可以运行脚本 .

在具有默认sepolicy的RHEL 5服务器上,以下内容在审计日志中不生成任何内容 .

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