SELinux访问问题以特定用户身份运行的进程无法更新同一用户拥有但由单独进程创建的文件

问题描述

我们有一个系统,其中Chef已作为特定用户部署了监视代理AppDynamics-为了本文的方便,请将该用户称为sysXYZ。 AppDynamics代理会创建一个每日日志文件,所有日志文件均具有sysXYZ用户所有权。

Tomcat(也以sysXYZ用户身份运行)托管由AppDynamics代理监视的应用程序。每天,Tomcat实例都会重新启动(项目是由其原因造成的),并且启动过程包括重新命名昨天的AppDynamics日志的步骤。但是,这被阻止为权限问题。以sysXYZ用户身份运行的Tomcat无法修改sysXYZ用户拥有但由非Tomcat创建的文件

我了解到SELinux旨在防止意外访问-说已经引入了恶意参与者-我对这个概念很好。我们该怎么做才能允许Tomcat实例在每次重新启动时适当地重命名文件

解决方法

正确且困难的方法是修改Tomcat目录上的SELinux布尔值,以允许其他用户创建的Tomcat修改文件。 阅读here

简单而肮脏的解决方案是以start-up process includes a step for renaming yesterdays AppDynamics logs的用户身份sysXYZ。这样就可以避免问题。

使用su - sysXYZ <script>命令或sudo -iu sysXYZ <script>命令或sudo -t <Tomcat role> <script>

祝你好运。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...