mouse8266 发表于 2008-11-05 12:47

请问各位为什么LIBPATH变量在CDE界面失效?

一个用户的 $HOME/.profile下设置了LIBPATH
同时将$HOME/.dtprofile的最后一行注释已经去掉只保留了DTSOURCEPROFILE=true,
按照理论来讲应该在通过CDE界面访问时 .profile应该起作用了.但是测试发现
通过XMANAGER连接该服务器,用这个用户登录,LIBPATH就为空,
而通过TELNET,同样用这个用户连接,LIBPATH就存在.
同样如果用root用户SU到这个用户,他的LIBPATH就起作用了
哪位高手知道是什么原因?急急急。。。。。。。。。

fck 发表于 2008-11-05 13:40

其它变量起作用了吗?
在控制台上用图形界面进呢?

mouse8266 发表于 2008-11-05 14:06

其它变量起作用了。
谢谢,我已经解决了。
是看别人的帖子解决的。原因如下:
如果用户在配置文件中设置了LIBPATH环境变量(将export LIBPATH=xxx加入~/.profile,然后在~/.dtprofile中设置DTSOURCEPROFILE=true)并使用CDE环境和AIX Term,就会发现在打开的AIX Term中LIBPATH变量被清除了。
这是因为出于安全性的考虑,AIX会在执行SUID的程序之前清除LIBPATH变量(防止恶意用户通过设置LIBPATH使SUID程序调用破坏性的代码)。aixterm就是这样的SUID程序。
要想在AIX Term中预设LIBPATH环境变量,您需要创建~/.kshrc文件。这个文件应该包括以下内容:
export LIBPATH=/usr/lib,/lib,<您想添加的路径>
同时,为了使命令行登录也有同样的效果,您需要修改~/.profile,使其包括以下内容:
export ENV=$HOME/.kshrc
这样启动AIX Term后,LIBPATH环境变量就可以正常使用了。

fck 发表于 2008-11-05 16:35

原来是这样。
谢谢!

tigerhuhuk 发表于 2014-07-18 12:37

谢谢!:wink:
页: [1]
查看完整版本: 请问各位为什么LIBPATH变量在CDE界面失效?