条件:
环境:SuSE 10
用户:root, user (都为suse存在的用户)
情况:
在root下执行如下命令
su - user -c "id"
uid=1000(master) ......
echo $?
1 # 错误地方就这里,应该返回0
问题:
root下使用 su - user -c 执行其他所有可执行命令,命令正常执行,但是返回值都为1.
请问下,这个问题如何定位?怎么解决?多谢~~~~
这个状态是由 su 命令返回的。请检查你的 su 有没有被别名、被覆盖,是不是有 bug 的版本,有没有已知的 bug 报告,是不是被替换过,等等。SUSE 应该有工具检查你系统上的 su 文件是不是他们发行的文件吧?
使用 strace 工具可以跟踪 su 的系统调用。如果确实是因为某种原因而失败了,很可能能够看到蛛丝马迹。另外可以用 gdb 看看,不过有调试符号才比较容易看。还可以去看看对应版本的源码。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。