버그 추적에 대한 일반적인 규칙이 있나요?

버그 추적에 대한 일반적인 규칙이 있나요?

내 질문을 더 쉽게 표현하기 위해 먼저 여기에 예를 들어보고 싶습니다.

/etc/pam.d/su 파일에서 다음 줄의 주석 처리를 제거했습니다.

auth   required   pam_wheel.so use_uid

따라서 명령을 실행하려면 사용자가 휠 그룹의 구성원이어야 합니다 su. 그런 다음 다음을 시도했습니다.

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

여기의 사용자 ssam아니요은(는) 휠 그룹의 구성원이므로 당연히 액세스가 거부됩니다! 하지만 올바른 루트 비밀번호를 입력했기 때문에 여기에 표시된 오류 메시지가 약간 부적절하다고 생각됩니다. 일부 실제 사용자가 실제 문제가 무엇인지 파악하는 데는 시간이 걸릴 것입니다.

위의 상황과 일반적인 상황에서 Linux 시스템 문제를 해결할 때 가장 먼저 해야 할 단계는 무엇입니까?

답변1

  • 구성을 다시 확인하세요.

    이것이 올바른지 확인하고 싶은 첫 번째 사항입니다. 이는 오류가 발생할 가능성이 가장 높은 원인이기도 합니다. 예, 모든 소프트웨어에는 버그가 있습니다. 그러나 이와 같은 버그는 su너무 많이 사용되므로 코드에 버그가 있는 것보다 시스템을 잘못 구성할 가능성이 더 높습니다.

  • 시스템 로그 확인(실제로는 이전 단계와 동시에)

  • 상세 모드에서 관련 애플리케이션 실행

  • strace,ltrace

  • gdb, 소스 코드

오류 메시지는 여러 가지 이유로 오해의 소지가 있는 경우가 많습니다. 하나는 코드에서 서로 다른 경로를 병합하는 경우가 많다는 것입니다. 둘째, 특히 보안에 민감한 애플리케이션 의 경우 공격자에게 더 적은 힌트를 제공하기 위해 수행됩니다 su. 그러나 이 특별한 경우에는 인증 실패를 의미하는 오류 코드를 반환하는 함수를 호출 하므로 PAM 아키텍처가 책임이 있다고 생각합니다 . 역사적인 이유로 이는 비밀번호 불일치로 간주됩니다(이 글을 작성할 때 실제 코드를 보지 않았으므로 자유롭게 납득해 주십시오).sudosshsu

관련 정보