打开 /proc/<PID>/stat 文件时出现权限被拒绝错误
Posted
技术标签:
【中文标题】打开 /proc/<PID>/stat 文件时出现权限被拒绝错误【英文标题】:Permission denied error when opening /proc/<PID>/stat file 【发布时间】:2017-04-11 22:28:08 【问题描述】:我写了一个守护进程,作为系统运行。 当它尝试打开一些使用其库的进程 PID 的 /proc//stat 条目时,我收到 SELinux 的以下错误:
type=1400 audit(1464247244.561:530):avc: denied search for pid=22968 comm="Binder_3" name="22899" dev="proc" ino=71342 scontext=u:r:system_app:s0 tcontext=u:r:untrusted_app:s0:c512,c768 tclass=dir permissive=0
我是否错过了我的守护进程的一些“允许”规则? 该错误似乎与它无关(好像“system_app”域缺少权限,而不是我的守护进程)。
我该如何解决?
【问题讨论】:
为什么要在系统应用上下文中运行你的守护进程?它不应该在更高的 selinux 上下文中运行吗? 【参考方案1】:你应该执行
adb shell ps -eZ | grep 22968
命令在您的应用同时运行时从命令行查找有问题的服务或应用。找到受害者(应用程序)后,您必须在 /external/sepolicy/service_contexts 文件中添加一个 SELinux 规则来处理访问冲突。
【讨论】:
以上是关于打开 /proc/<PID>/stat 文件时出现权限被拒绝错误的主要内容,如果未能解决你的问题,请参考以下文章
linux下用程序读取某进程的状态信息(/proc/[pid]/stat)时,该进程结束了。怎么办
处理/ proc / pid / fd /#链接的创建和删除的Linux内核代码在哪里?