나는 데비안의 모든 로그를 비활성화하고 싶지 않고 루트 로그인 시간과 로그인 기간을 기록하는 로그만 비활성화하고 싶습니다.
터미널에서 명령을 실행하면 last
내 IP 주소 등이 표시되고 이를 비활성화하고 싶습니다.
내가 갈 때 /var/log
,BTMP인식할 수 없는 문자와 같은 일부 사각형 기호만 있는 파일이 비어 있습니다.워터앰프그것은 동일합니다. 내용을 삭제했습니다 auth.log
.
이 유형의 로깅을 비활성화하려면 어떻게 해야 합니까?
답변1
로그 필터링
을 사용할 수 있다고 생각합니다 rsyslog
. 특히 에 필터를 추가해야 합니다 /etc/rsyslog.d/
.
다음과 같은 메시지의 경우 /var/log/secure
(예: Fedora 19):
Jun 28 13:28:18 greeneggs login: pam_unix(login:session): session opened for user saml by LOGIN(uid=0)
Jun 28 13:28:19 greeneggs login: LOGIN ON tty2 BY saml
다음과 같은 필터를 사용하여 무시할 수 있습니다.
$syslogfacility-text == 'local0'이고 $msg가 'login'으로 시작하고 ($msg에 'root'가 포함되어 있으면) /dev/null
노트:위의 내용은 테스트되지 않았지만 이 문제를 대략적으로 해결하는 방법을 보여주는 예일 뿐입니다.
wtmp 및 btmp 필터링
이러한 파일은 바이너리 파일이므로 단순히 표준 도구(예: sed
및 )를 사용하여 편집 할 수 없습니다 awk
. 정말로 편집하고 싶다면 cron
정기적으로 편집해야 합니다. 로그인할 때 두 파일에 추가된 사용자를 필터링하는 방법을 찾을 수 없습니다.
에서 발췌Utmp 위키피디아 페이지
utmp, wtmp 및 btmp
- 유템시스템의 현재 상태, 시스템 시작 시간(정상 작동 시간 사용)에 대한 완전한 기록을 유지하고, 사용자가 로그인하고 로그오프한 터미널, 시스템 이벤트 등을 기록합니다.
- 워터앰프기록 utmp로 작동
- BTMP실패한 로그인 시도 기록
파일
utmp
은 텍스트 파일이 아니라 특별히 제작된 프로그램으로 편집해야 하는 바이너리 형식입니다. 파일에 있는 구현 및 필드는 시스템 또는 libc 버전에 따라 다르며utmp.h
헤더 파일에 정의됩니다.
wtmp
사용자 이름이 비어 있으면 연결된 터미널에서 로그아웃한다는 점을 제외하면 형식은btmp
완전히 동일합니다 .utmp
또한 사용자 이름 종료 또는 다시 시작에 대한 터미널 이름 ~은 시스템 종료 또는 다시 시작을 나타내며 터미널 이름 쌍 /는 날짜가 변경될 때 이전/새 시스템 시간을 기록합니다.
이러한 파일을 확장하려면 Perl 모듈을 사용할 수 있습니다.사용자::Utmp이 파일을 수정하려면 Python에도 비슷한 모듈이 있습니다.