RHEL8 selinux不允许服务从systemctl启动,而tomcat/bin/startup.sh拒绝权限[关闭]
Posted
技术标签:
【中文标题】RHEL8 selinux不允许服务从systemctl启动,而tomcat/bin/startup.sh拒绝权限[关闭]【英文标题】:RHEL8 selinux not allowing service to start from systemctl while tomcat/bin/startup.sh denied permission [closed] 【发布时间】:2022-01-21 03:58:52 【问题描述】:我正在使用 aws rhel 8 linux 实例和从 AWS 中的 EFS 安装的 tomcat 文件夹并使用 对 nfs 挂载数据(tomcat 文件夹)具有完全权限的用户 ec2-user 能够在 /opt/mytomcat 上创建删除文件。 (目录)
当我尝试直接从 bin /opt/mytomcat/tomcat/bin/startup.sh 启动时工作正常,但是当我尝试从 /etc/systemd/system/tomcat.service 运行时它没有工作我确定我的设置是正确的,如果我禁用我的 selinux tomcat.service 工作正常。
错误:sudo systemctl start tomcat.service
tomcat.service:执行命令失败:权限被拒绝 12 月 14 日 10:58:02 ip-xxxxxxxx-2.compute.internal systemd[8827]: `
tomcat.service: Failed at step EXEC spawning
` `/opt/mytomcat/bin/startup.sh: Permission denied`
/opt/mytocmat/tomcat/startup.sh 有上下文 system_u:object_r:nfs_t:s0,应该是 system_u:object_r:usr_t:s0
当运行 audit2allow 以查找更多详细信息时,它会在下面显示以启用 nfs_t 文件
sudo audit2allow -a
#============= init_t ==============
allow init_t nfs_t:file execute open read ;
基于上述,我尝试更改我的 nfs(efs aws 驱动器)驱动器的权限
[星期二 16:48] 拉杰什·丹达穆迪 sudo semanage fcontext -a -t init_t "/opt/mytomcat(/.*)?"
sudo restorecon -R -v /opt/mytomcat/
上面的命令运行,但检查时没有任何变化
system_u:object_r:nfs_t:s0。而不是 init_t 不确定如何修复它我是新的 selinux
我的 nfs 驱动器安装和工作正常,能够毫无问题地编辑/更新文件
[ec2-user@ip-10-xxxxx ~]$ ls -lZ /opt/mytomcat
total 2273208
drwxr-x---. 2 ec2-user ec2-user system_u:object_r:**nfs_t**:s0 6144 Dec 10 18:11 audit
-rw-r-----. 1 ec2-user ec2-user system_u:object_r:nfs_t:s0 7727677 Dec 9 21:58 mytomcat
可以帮帮我吗,因为我是 selinux 安全位的新手
【问题讨论】:
【参考方案1】:您可以尝试做的一些事情是:
-
startup.sh 文件是否可由 root 用户执行。 (
chmod +x startup.sh
)
考虑更改您的 tomcat 文件的所有者或组,以便服务可以访问它。 (使用 chown)
检查tomcat服务配置,看看有没有问题。
根据我的经验,这些类型的问题似乎有一个可能被忽视的非常简单的根本原因。
【讨论】:
以上是关于RHEL8 selinux不允许服务从systemctl启动,而tomcat/bin/startup.sh拒绝权限[关闭]的主要内容,如果未能解决你的问题,请参考以下文章