免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3016 | 回复: 4
打印 上一主题 下一主题

!求助:setuid()的用法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-17 17:09 |只看该作者 |倒序浏览
在程序中需要用setuid(),可是文件的属性为:
-rwsrwsrwx   1 root     sys
后,用普通用户起,就起不来了!

在连oracle时报错!
DBMS API Library 'libclntsh.so' loading fails

请问该如何处理,谢谢各位!!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-02-17 17:55 |只看该作者

!求助:setuid()的用法

也许是这个'libclntsh.so' 的属性不对

论坛徽章:
0
3 [报告]
发表于 2003-02-17 18:01 |只看该作者

!求助:setuid()的用法

该怎么设呢?也要有S属性吗?

论坛徽章:
0
4 [报告]
发表于 2003-02-17 19:40 |只看该作者

!求助:setuid()的用法

'libclntsh.so' 是你自己的还是系统的

或是文件不在搜索路径下

论坛徽章:
0
5 [报告]
发表于 2003-02-17 20:11 |只看该作者

!求助:setuid()的用法

这是找到的一些说明,不过没有解决办法!!
即使使得uid和gid与euid和egid分别相等也是一样!
///////////////////////////////////////////////////////////////
LD_LIBRARY_PATH在开发和调试过程中经常大量使用,但是不应该被一个普通用户在安装过程中被安装程序修改,大家可以去参考http://www.visi.com/~barr/ldpath.html,这里有一个文档专门介绍为什么不使用LD_LIBRARY_PATH这个变量。

事实上还有更多的环境变量影响着程序的调入过程,它们的名字通常就是以LD_或者RTLD_打头。大部分这些环境变量的使用的文档都是不全,通常搞得人头昏眼花的,如果要真正弄清楚它们的用法,最好去读loader的源码(也就是gcc的一部分)。
允许用户控制动态链接函数库将涉及到setuid/setgid这个函数如果特殊的功能需要的话。因此,GNU loader通常限制或者忽略用户对这些变量使用setuid和setgid。如果loader通过判断程序的相关环境变量判断程序的是否使用了setuid或者setgid,如果uid和euid不同,或者gid和egid部一样,那么loader就假定程序已经使用了setuid或者setgid,然后就大大的限制器控制这个老链接的权限。如果阅读GNU glibc的库函数源码,就可以清楚地看到这一点,特别的我们可以看elf/rtld.c和sysdeps/generic/dl-sysdep.c这两个文件。这就意味着如果你使得uid和gid与euid和egid分别相等,然后调用一个程序,那么这些变量就可以完全起效。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP