
머신의 모든 쉘에 제출된 모든 명령을 기록하는 우아한 방법이 있습니까? 이것은 자주 사용되지 않는 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
당신이 사용할 수있는스도시쉘 래퍼로. 여기에는 수행하는 모든 작업에 대한 자동 로깅이 포함되어 있으며 로그 파일을 재생할 수 있습니다.자세한 내용은 해당 웹사이트를 참조하세요..