내 프로그램을 종료한 사용자를 찾는 방법은 무엇입니까?

내 프로그램을 종료한 사용자를 찾는 방법은 무엇입니까?

Linux 서버에서 장기 실행 프로그램을 실행하고 있습니다. 다른 많은 사용자들도 이 서버에서 프로그램을 실행하고 있습니다. 우리 모두는 sudo 권한을 가지고 있습니다.

장난스러운 사용자가 실행 중인 프로그램을 종료한다고 가정해 sudo kill보겠습니다 sudo pkill. 이 사용자가 누구인지 어떻게 알 수 있나요?

답변1

비록 바울의 대답이 옳다고 하더라도 증거가 제거될 수 있다는 점에서 증거가 제거된다는 의미는 아닙니다. 어떤 로그를 제거해야 하는지 아는 사람의 수에 비해 sudo에 대해 아는 사람이 더 많습니다.

내 시스템에서는 sudo를 사용할 때마다 전체 명령줄이 로그에 저장됩니다. 나는 당신의 시스템도 같은 일을 할 수 있다고 생각합니다. OpenBSD에서는 /var/log/authlog이고 Debian 시스템에서는 /var/log/auth.log입니다.

어떤 파일에 이러한 정보가 저장되어 있는지 모르는 경우 sudo 명령을 실행해 보세요. (sudo로 무엇을 하든 상관없습니다. 그것만으로도 echo충분합니다. 목적은 sudo를 사용할 때 수정되는 로그를 수정하는 것입니다.) 그런 다음

ls -ltr /var/log/*auth*

또는

ls -ltr /var/log | tail

최근에 수정된 파일을 찾으려면

답변2

모두 가지고 있는 경우 sudo동일한 수준의 권한으로 모든 증거가 제거될 수 있으므로 종료된 프로세스의 증거를 유지할 보장된 방법이 없습니다.

당신은 사용할 수 있습니다auditd 감사 데몬kill과 같은 특정 syscall을 추적합니다.

분명히 루트 사용자는 먼저 감사 데몬을 중지한 다음 로그를 삭제할 수 있습니다. 따라서 로그를 외부로 내보내고 싶을 것입니다.

더 나은 접근 방식은 sudo를 더 잘 관리하여 각 사용자에게 필요한 액세스 권한만 부여하는 것입니다. 일반 사용자는 전체 루트 액세스가 거의 필요하지 않으며 sudo를 사용하여 일부 권한을 부여할 수 있습니다.

관련 정보