作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我使用LD_LIBRARY_PATH
为应用程序设置某个用户库的路径。但是,如果我在此应用程序上设置功能
sudo setcap CAP_NET_BIND_SERVICE=eip myapplication
然后 LD_LIBRARY_PATH
似乎被忽略了。当我启动程序时,Linux 提示找不到某个共享库。
我猜想有某种保护措施可以防止具有扩展权限的应用程序被劫持。有解决方法吗?
最佳答案
如其他答案中所述,此行为是有意的。如果您可以自己编译(或至少链接)应用程序,则有某种解决方法。然后你可以通过 -Wl,-rpath <yourDynamicLibraryPath>
到 gcc 或 -rpath <yourDynamicLibraryPath>
到 ld,你就不必指定 LD_LIBRARY_PATH
完全执行。
关于Linux 功能 (setcap) 似乎禁用了 LD_LIBRARY_PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9843178/
我是一名优秀的程序员,十分优秀!