您的当前位置:首页正文

71 Linux 应用程序 permission denied问题

2024-11-06 来源:个人技术集锦

1 前言

        最近在工作中,遇到了执行应用程序的时候出现permission denied问题,如下图示。

 

        由上图示我明明已经把该可执行程序的权限改成777了,也就是:chmod 777 -R /sbin*,但还会出现permission denied问题,简直吐血啊,第一次遇到这么奇怪的问题。

 2 问题解决

        由于问题过于“简单”,所以网上搜索到的无非是chmod 777 *或chmod a+x *的解决办法,类似下图示。

 但我把应用的执行权限调为777了,但是并没有什么作用,因此上述方法只适合小白的permission denied问题。

问题怀疑:库的执行权限不足,导致permission denied!

        对于permission denied问题我询问了做内核这一块的师兄,他说可以用strace工具来调试卡在哪里,然后我就兴高采烈的去移植strace工具了, 然而的然而,因该是编译工具链问题,导致编译工具老是出问题,所以无奈放弃!!!

        最后我直接用strings命令,查看应用程序依赖哪些库,然后查看对应库的执行权限。

 发现应用程序运行依赖了ld.so.1这个库。

然后我就去看ld.so.1这个库,发现它没有执行权限,为此我把该库chmod 777后,就可以正常运行了。

总结

        应用程序permission denied除了自己的可执行权限不足可导致外,链接库的权限不足也可能导致permission denied。

over!

Top