1

モードで SELinux がインストールされた RHEL 5.5 サーバーを使用していstrictます。システムはpermissive現在モードです。私は単純なシェル スクリプトを作成しようとしています。たとえばsetest.sh、bash ターミナルから明示的に実行したいと考えています。

permissive モードではそうすることができますが、監査ログに拒否されたと記録されます。

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 を enforcing モードに切り替えると、bash コンソールからスクリプトを実行できなくなることを意味します。SELinux が適用されているときにこれが機能するようにするには、ポリシー モジュールにどの許可/ドメイン移行ルールを追加する必要がありますか?

よろしく、
ナゲンドラUM

4

1 に答える 1

0

'test_policy_exec_t'でWeb検索を実行すると、このスレッドのみがヒットするため、作成したカスタムコンテキストであると推測されます。コンテキストを通常のものに変更するだけで、スクリプトを実行できるようになります。

デフォルトのsepolicyを使用するRHEL5サーバーでは、次のように監査ログに何も生成されません。

 $ 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!
于 2011-12-30T01:42:56.063 に答える