关闭

普通用户程序使用保留端口 && error while loading shared libraries

标签: linux端口权限ldconfigLD-LIBRARY
208人阅读 评论(0) 收藏 举报
分类:

Linux系统中,1024及更小的端口号是不对没有root权限的用户开放的。但是也有一些办法可以绕开这个限制。
以执行程序my_proc为例进行说明:

chown root:root my_proc
chmod ug+s my_proc

将my_proc的用户和组改为root,并且为其(运行用户和运行组)赋予su权限,既可以在当前用户非root的情况下,以root用户身份调用my_proc程序了。


如果程序my_proc引用了动态库my_lib.so,运行时可能会出现以下错误:

error while loading shared libraries: my_lib.so: cannot open shared
object file: No such file or directory

这是因为my_lib.so所在路径没有被加入到环境变量LD_LIBRARY_PATH中。
一般情况下可以通过修改环境变量的方法来修复:

export LD_LIBRARY_PATH=/my/lib/path:$LD_LIBRARY_PATH

但涉及到这种跨用户的情况,上述方法并不管用,因为export命令只对当前Session生效。所以需要修改共享库配置文件/etc/ld.so.conf
在其中添加动态库所在目录,然后执行以下命令即可。

ldconfig
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:970171次
    • 积分:10880
    • 等级:
    • 排名:第1522名
    • 原创:188篇
    • 转载:128篇
    • 译文:3篇
    • 评论:168条
    博客专栏
    最新评论