데비안 리눅스에서 /var/log 디렉토리를 읽기 전용으로 만드는 것이 안전합니까?

데비안 리눅스에서 /var/log 디렉토리를 읽기 전용으로 만드는 것이 안전합니까?

저는 512mb CF 자동을 HD로 사용하는 매우 작은 서버를 설치하고 있습니다. 공간이 충분하지 않을 뿐만 아니라 디스크에 쓰기를 최소화하고 싶습니다.

/var/log 디렉토리를 완전히 지우고 읽기 전용(쓰기 금지)으로 만들고 싶습니다.

이렇게 하면 시스템이 중단됩니까?

답변1

읽기 전용으로 만들지 않고 /var/logtempfs로 만듭니다. 그리고 정기적으로 가지치기를 해주세요. 물론 이것은 여유 RAM이 충분한 경우에만 작동합니다.

필수가 아닌 다른 디렉터리에도 동일한 작업을 수행할 수 있습니다./var/tmp

내 항목 /etc/fstab(현재 주석 처리됨):

tmpfs   /var/tmp   tmpfs   defaults,noatime,mode=1777,size=128M   0  0
tmpfs   /var/log   tmpfs   defaults,noatime,mode=0755,size=128M   0  0

답변2

~에 따르면데비안 FHS(파일 시스템 계층 표준),/var/log는 쓰기 가능해야 합니다. 시작 시 시스템 자체가 이 디렉터리의 로그에 쓸 수 있어야 합니다. /usr을 읽기 전용으로 설정할 수 있지만 /var는 쓰기 가능하게 마운트해야 합니다.

기사에서 묻는 질문에 대답하자면, 예, 시스템이 시작 시 중단됩니다. 커널은 dmesg에 쓰려고 시도하고, 쓸 수 없으면 정지됩니다.

답변3

읽기 전용으로 만들 계획이라면 쓸모가 없습니다. 기록되는 내용과 방법을 제어해야 합니다.

공간이 부족하다면 별도의 적당한 크기의 /var 파티션을 원하고 ReiserFS와 같이 많은 수의 작은 파일을 처리할 수 있는 파일 시스템을 선택할 수 있습니다.

답변4

댓글에서 말했듯이 쓰기 가능성 /var/log은 중요하지만 가능한 한 적은 양만 저장되도록 할 수 있는 방법이 있습니다. 예를 들어, logrotate크기에 따라 로그 파일을 회전하고 오래된 파일을 압축하도록 구성할 수 있습니다 . 및 그 이상 syslogCRIT로그에 기록 하도록 구성할 수도 있습니다 (나머지는 삭제됩니다).

logrotate예:

   compress

   /var/log/messages {
       rotate 5
       size 100k
       postrotate
           /usr/bin/killall -HUP syslogd
       endscript
   }

logrotate /etc/logrotate.conf(또한 cronjob에서 실행되도록 구성해야 합니다 ).

rsyslog.conf예:

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$IncludeConfig /etc/rsyslog.d/*.conf

*.crit                                                  /var/log/messages
*.emerg                                                 *

거의 아무 것도 기록되지 않으므로 이는 아마도 가장 좋은 중간 지점일 것입니다. 하지만 여전히 중요한 이벤트에 대한 알림은 받게 됩니다. 로그 보존이 중요한 경우 저장 공간이 더 큰 서버에 원격 syslog를 구성하는 것을 고려할 수도 있습니다.

관련 정보