是否有跟踪错误的一般规则?

是否有跟踪错误的一般规则?

我想在这里先举一个例子,以便更容易地表达我的问题。

我已取消注释 /etc/pam.d/su 文件中的以下行

auth   required   pam_wheel.so use_uid

因此,用户必须是wheel组的成员才能运行该su命令。然后我尝试了以下操作:

[ssam@centos ~]$ su
Password: 
su: incorrect password

这里的用户ssam不是是wheel组的成员,因此访问被拒绝,事情应该如此!但我感觉这里显示的错误信息有点不合适,因为我确实输入了正确的root密码。对于一些真正的用户来说,需要一段时间才能弄清楚实际问题是什么(希望如此)。

在上述情况和一般情况下,对 Linux 系统进行故障排除时,第一步应该从什么开始?

答案1

  • 仔细检查配置

    这是您首先要确保正确的事情。它也是最有可能造成任何错误的原因。是的,任何软件都存在错误,但是类似的东西su使用得如此之多,以至于您更有可能错误配置了系统,而不是代码中存在错误。

  • 检查系统日志(实际上与上一步同时进行)

  • 以详细模式运行相关应用程序

  • strace,ltrace

  • gdb, 源代码

由于多种原因,错误消息常常具有误导性。一是他们经常合并代码中的不同路径。其次,特别是对于安全敏感的应用程序,例如susudo或者ssh这样做是为了向攻击者提供更少的提示。然而,在这种特殊情况下,我相信 PAM 架构应该归咎于我们su调用一个返回错误代码的函数,这意味着身份验证失败。由于历史原因,这被认为是密码不匹配(请注意,我在编写此内容时没有查看实际代码,因此请随意说服我)。

相关内容