SELinux环境下允许httpd查看同用户启动进程状态的问题求助
SELinux环境下允许httpd查看同用户启动进程状态的问题求助
我现在正试着让一个PHP应用管理后台任务,但在SELinux环境下这事变得有点棘手——看起来httpd的PHP进程没法访问其他httpd进程的/proc/{pid}目录。
我的核心需求其实很简单,就是要确认两个信息:
- 目标PID的进程是否还在运行?
- 这个进程是不是由正确的apache用户启动的?
说实话我完全搞不懂SELinux,查了一堆资料、翻了man手册也没找到解决方向,真心求各位大佬帮忙!
我已经尝试过这些方法,但在SELinux强制模式(setenforce 1)下都有问题:
- 用PHP的
file_exists("/proc/$pid/status")判断进程状态:开启SELinux就失败 - 执行系统命令
ps -o uname='' -p $pid获取进程所属用户:同样在SELinux开启时失败 - 先通过
file_exists("/proc/$pid")判断进程存在(这一步能成功),再尝试读取该目录的所有者信息:但后续的所有者检查操作全部失败 - 试过修改
/proc目录的安全上下文,想给httpd全开访问权限,但发现根本没法这么操作
我期望能找到一种可行的方法,让PHP进程可以获取到以下两个关键信息:
- 指定PID的进程是否仍在运行
- 指定PID的进程是否属于某个特定用户
备注:内容来源于stack exchange,提问作者user2622597
相关产品推荐
相关产品推荐

