Solaris下/usr/lib/secure/[email protected]的错误

这两天一直被下面的错误所困扰:

lb是一个调用rsh的脚本,ccmscell是一个server pool,uname是在lb中被调用的。

仔细研究了N遍相关的脚本,Google了N次相关的错误信息,都没有找到有价值的线索。后来问了一位做过IT的同事,她说以前遇见过类似的问题,可她的解决方案最终被证明无效。

最终发现不是所有的server上执行这条命令都有问题,有些是可以执行的。对比了之后发现,如果/usr/lib/secure/[email protected]的group设置为bin,owner设为root,就不会出现上面的问题。出问题的server上/usr/lib/secure/[email protected]的group为other。

进一步调查后发现,/usr/lib/secure/[email protected]是在Solaris 5.8上被设为LD_PRELOAD_32的,因为很多程序要被setuid+chroot的伪root调用。当且仅当上面的命令被该伪root执行时,才会出现上面的错误!

幸亏Solaris 5.8已经开始走进坟墓了,即使在落后如我们公司的地方!

【update2011-06-23】:

今天发现root cause 不是由于/usr/lib/secure/[email protected]的group不对,而是因为remote server(比如poolccmscell中的server)上没有/usr/lib/secure/[email protected] —— 执行rsh命令的login是setuid+chroot实现的伪root,因此远程的server就需要/usr/lib/secure/[email protected]了。

你可能感兴趣的:(Solaris)