bash_history 없이 터미널에서 실행된 명령을 추적하는 방법

bash_history 없이 터미널에서 실행된 명령을 추적하는 방법

저는 사용자 활동을 추적하고 기본적으로 가능한 작업을 자동화하는 프로그램을 작성하고 있습니다.

현재 사용자들이 명령줄에서 자주 사용하는 프로그램을 모니터링하려고 합니다. 하지만 아는 것만으로는 충분하지 않습니다. 해당 명령을 실행하는 데 필요한 시간, 작업 디렉터리 등의 데이터가 필요합니다.

현재 솔루션은 시작 시 PATH를 반복하고 PATH에 있는 각 프로그램에 대해 더미 Python 스크립트를 생성하는 Python 스크립트 세트입니다. 사용자가 이러한 명령을 사용하려고 하면 이러한 스크립트가 호출됩니다(PATH에 스크립트 경로를 추가하여). 각 스크립트는 해당 이름과 인수를 정보를 기록하는 다른 스크립트에 전달한 다음 원래 터미널에 입력된 내용을 호출합니다( 경로를 변경하여). 이것은 다소 혼란스러운 해결책입니다. 나는 이것을 수행하는 몇 가지 간단한 방법이 있다고 확신합니다.

또한 실시간(또는 거의 실시간)으로 실행된 명령에 대한 데이터를 얻을 수 있다면 좋을 것입니다.

답변1

auditd를 보셨나요? 그렇지 않다면 Linux 감사 시스템에 대한 이 슬라이드를 살펴보세요. 이는 귀하가 설명하는 대부분의 기능을 보다 표준적이고 완벽한 방식으로 제공합니다.

http://people.redhat.com/sgrubb/audit/audit_ids_2011.pdf

관련 정보