我在错误报告中不断收到来自 SELinux 的这条消息。我正在运行 Fedora 13,并且我正在边学习边学习。可能是什么原因造成的?
Summary:
SELinux is preventing /usr/sbin/semodule access to a leaked /tmp/tmpGTbWYh file
descriptor.
Detailed Description:
[semodule has a permissive type (semanage_t). This access was not denied.]
SELinux denied access requested by the semodule command. It looks like this is
either a leaked descriptor or semodule output was redirected to a file it is not
allowed to access. Leaks usually can be ignored since SELinux is just closing
the leak and reporting the error. The application does not use the descriptor,
so it will run properly. If this is a redirection, you will not get output in
the /tmp/tmpGTbWYh. You should generate a bugzilla on selinux-policy, and it
will get routed to the appropriate package. You can safely ignore this avc.
Allowing Access:
You can generate a local policy module to allow this access - see FAQ
(http://docs.fedoraproject.org/selinux-faq-fc5/#id2961385)
Additional Information:
Source Context system_u:system_r:semanage_t:s0-s0:c0.c1023
Target Context system_u:object_r:initrc_tmp_t:s0
Target Objects /tmp/tmpGTbWYh [ file ]
Source semodule
Source Path /usr/sbin/semodule
Port <Unknown>
Source RPM Packages policycoreutils-2.0.83-28.fc13
Target RPM Packages
Policy RPM selinux-policy-3.7.19-62.fc13
Selinux Enabled True
Policy Type targeted
Enforcing Mode Enforcing
Plugin Name leaks
答案1
这可能是在系统更新后发生的,并且由于重新启动后通常不需要临时文件,因此我尝试删除该文件。
fuser /tmp/tmpGTbWYh
使用此命令,您可以查看该文件是否被任何进程使用,并将为您提供一个或多个数字(进程 ID、PID)。
没有数字表示该进程未被使用,您可以安全地删除该文件
rm /tmp/tmpGTbWYh
使用有权执行此操作的用户(您的用户?root?)执行上述操作,您可以使用 ls 检查这一点
ls -l /tmp/tmpGTbWYh
如果该文件被任何进程使用,您可以执行 ps 并按您在执行 fusionr 时找到的每个 PID 进行过滤
ps -ef | grep $PID
您必须将 $PID 替换为上面找到的数字(使用定影器)。
此时,您应该决定是否可以,确定应用程序正在使用该文件并关闭它(如果可以的话),或者终止该进程(杀死 $PID),或者无论如何删除该文件(这可能有风险)。
如果您难以做出决定,请告诉我们。
答案2
关闭 SELinux,您将不会再收到这些消息 - 您真的需要打开此功能吗?要关闭它,请以 root 身份登录:
echo 0 > /selinux/enforce
编辑这个文件:
vi /etc/selinux/config
并将属性更改SELINUX
为SELINUX=disabled