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

发布于 2024-12-03 06:18:46 字数 653 浏览 0 评论 0原文

我有一台 RHEL 5.5 服务器,并以 strict 模式安装了 SELinux。系统当前处于<​​code>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 时可以发挥作用?

问候,
纳根德拉大学

I have an RHEL 5.5 server with SELinux installed in strict mode. The system is in permissive mode currently. I am trying to write a simple shell script, say setest.sh and want to run it explicitly from the bash terminal.

In permissive mode I am able to do so, but it is logged as denied in the audit logs:

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

This obviously means that I will not be able to run the script from the bash console once I switch SELinux to enforcing mode. What allow/domain transition rule should I add in my policy modules so that this can work when SELinux is enforced?

Regards,
Nagendra U M

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光病人 2024-12-10 06:18:46

当我在“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!

When I run a web search on 'test_policy_exec_t', the only hit I get is this thread, so I presume it's a custom context that you've created. Just change the context to something normal and you'll be able to run the scripts.

On my RHEL 5 server with default sepolicy, the following generates nothing in the audit log.

 $ 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!
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文