
루트 로그인 시간과 기간을 기록하는 데비안의 모든 로그만 비활성화하고 싶지 않습니다.
터미널에서 명령을 실행하면 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
- UMP시스템의 현재 상태, 시스템 부팅 시간(가동 시간에 사용됨), 터미널에서 사용자 로그인 기록, 로그아웃, 시스템 이벤트 등에 대한 전체 계정을 유지 관리합니다.
- 중량프역사적인 utmp 역할을 합니다.
- btmp실패한 로그인 시도를 기록합니다.
파일
utmp
은 텍스트 파일이 아니라 특별히 제작된 프로그램으로 편집해야 하는 바이너리 형식입니다. 파일에 존재하는 구현 및 필드는 시스템 또는 libc 버전에 따라 다르며utmp.h
헤더 파일에 정의됩니다.
wtmp
및 형식 은 null 사용자 이름이 관련 터미널에서 로그아웃을 의미한다는 점을 제외하면btmp
완전히 동일합니다 .utmp
또한 사용자 이름이 shutdown 또는 restart인 터미널 이름은 시스템 종료 또는 재부팅을 나타내며 터미널 이름 쌍 /은 날짜가 변경될 때 이전/새 시스템 시간을 기록합니다.
이러한 파일을 확장하려면 Perl 모듈을 사용할 수 있습니다.사용자::Utmp이 파일을 수정하려면 Python에도 비슷한 모듈이 있습니다.