搜索
linux - SuSE系统下su - user -c "id";echo $?返回值为1,问题如何定位解决?
高洛峰
高洛峰 2017-04-17 13:00:13
[Linux讨论组]

条件:

  • 环境:SuSE 10
  • 用户:root, user (都为suse存在的用户)

情况:

在root下执行如下命令

> su - user -c "id"
uid=1000(master) ......
> echo $?
1  # 错误地方就这里,应该返回0

问题:

root下使用 su - user -c 执行其他所有可执行命令,命令正常执行,但是返回值都为1.
请问下,这个问题如何定位?怎么解决?多谢~~~~

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
PHP中文网

这个状态是由 su 命令返回的。请检查你的 su 有没有被别名、被覆盖,是不是有 bug 的版本,有没有已知的 bug 报告,是不是被替换过,等等。SUSE 应该有工具检查你系统上的 su 文件是不是他们发行的文件吧?

使用 strace 工具可以跟踪 su 的系统调用。如果确实是因为某种原因而失败了,很可能能够看到蛛丝马迹。另外可以用 gdb 看看,不过有调试符号才比较容易看。还可以去看看对应版本的源码。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板