저는 사용자 활동을 추적하고 기본적으로 가능한 작업을 자동화하는 프로그램을 작성하고 있습니다.
현재 사용자들이 명령줄에서 자주 사용하는 프로그램을 모니터링하려고 합니다. 하지만 아는 것만으로는 충분하지 않습니다. 해당 명령을 실행하는 데 필요한 시간, 작업 디렉터리 등의 데이터가 필요합니다.
현재 솔루션은 시작 시 PATH를 반복하고 PATH에 있는 각 프로그램에 대해 더미 Python 스크립트를 생성하는 Python 스크립트 세트입니다. 사용자가 이러한 명령을 사용하려고 하면 이러한 스크립트가 호출됩니다(PATH에 스크립트 경로를 추가하여). 각 스크립트는 해당 이름과 인수를 정보를 기록하는 다른 스크립트에 전달한 다음 원래 터미널에 입력된 내용을 호출합니다( 경로를 변경하여). 이것은 다소 혼란스러운 해결책입니다. 나는 이것을 수행하는 몇 가지 간단한 방법이 있다고 확신합니다.
또한 실시간(또는 거의 실시간)으로 실행된 명령에 대한 데이터를 얻을 수 있다면 좋을 것입니다.
답변1
auditd를 보셨나요? 그렇지 않다면 Linux 감사 시스템에 대한 이 슬라이드를 살펴보세요. 이는 귀하가 설명하는 대부분의 기능을 보다 표준적이고 완벽한 방식으로 제공합니다.