모든 사용자가 제출한 모든 UNIX 쉘 명령을 어떻게 기록합니까?

모든 사용자가 제출한 모든 UNIX 쉘 명령을 어떻게 기록합니까?

머신의 모든 쉘에 제출된 모든 명령을 기록하는 우아한 방법이 있습니까? 이것은 자주 사용되지 않는 Ubuntu 서버의 맥락에서 발생하며 그 중 나는 유일한 인간 사용자입니다. (자동화된 시스템에서 사용되는 여러 사용자 계정이 있습니다.)

나는 이것이 눈에 띄지 않고 오버헤드가 적기를 원하므로 script.

답변1

태초부터(실제로는 사람들이 사용한 컴퓨터 주기당 실제 돈을 지불해야 했던 때부터 거슬러 올라갑니다) Unix와 그 클론에는 프로세스 회계( acct)라는 시스템이 내장되어 있습니다. 이를 통해 시스템 관리자는 정확히 알 수 있었습니다. 사용자가 무엇을 했는지에 따라 비용을 청구할 수 있습니다.

acct기능은 오늘날까지도 대부분의 Unix 및 Linux 시스템에 여전히 존재합니다.

이 장소:http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html활성화하는 방법을 알려줍니다.

답변2

당신은 사용할 수 있습니다스누피.

설치 및 제거가 매우 간단합니다(커널 모듈이나 패치가 필요하지 않음). 이는 적절한 감사 솔루션이 아니므로 쉽게 우회할 수 있습니다.

공개: 저는 현재 스누피 관리자입니다.

답변3

여기 아주 좋고 빠릅니다.모든 쉘 명령을 기록하는 방법:

1 단계:

선호하는 텍스트 편집기를 사용하여 /etc/bashrc를 열고 끝에 다음 줄을 추가합니다.

export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

2 단계:

/etc/syslog.conf 파일에 다음 행을 추가하여 local6을 로그 파일로 트랩하도록 syslogger를 설정하십시오.

local6.*                /var/log/cmdlog.log

[여기에서 전체 블로그 게시물을 확인하세요]

답변4

당신이 사용할 수있는스도시쉘 래퍼로. 여기에는 수행하는 모든 작업에 대한 자동 로깅이 포함되어 있으며 로그 파일을 재생할 수 있습니다.자세한 내용은 해당 웹사이트를 참조하세요..

관련 정보