Está tornando o diretório / var / log legível apenas no debian linux seguro?

4

Estou instalando um servidor muito pequeno que tem um carro CF de 512 MB como HD. Não só não tenho muito espaço, mas gostaria de minimizar as gravações em disco.

Eu gostaria de limpar completamente o diretório / var / log e torná-lo somente para leitura (protegido contra gravação).

O sistema irá travar se eu fizer isso?

    
por user3379982 22.04.2014 / 19:14

4 respostas

8

Em vez de torná-lo somente leitura, criaria /var/log como tempfs. e regularmente podar. É claro que isso só funciona se você tiver RAM disponível suficiente.

Você pode fazer o mesmo para outros possíveis diretórios não essenciais, como /var/tmp

Entradas no meu /etc/fstab (agora comentadas):

tmpfs   /var/tmp   tmpfs   defaults,noatime,mode=1777,size=128M   0  0
tmpfs   /var/log   tmpfs   defaults,noatime,mode=0755,size=128M   0  0
    
por 22.04.2014 / 19:53
5

Se você está pensando em torná-lo somente leitura, então é tão bom quanto inútil. Você deve controlar como e o que você registra.

Se você está com pouco espaço, você pode querer ter uma partição / var de tamanho razoável e escolher um sistema de arquivos que possa lidar com muitos arquivos pequenos, como o ReiserFS ou algo assim.

    
por 22.04.2014 / 19:47
5

De acordo com o Debian FHS (Filesystem Hierarchy Standard), / var / log deve ser gravável. Na inicialização, o próprio sistema deve poder gravar em um log nesse diretório. Você pode fazer / usr somente leitura, mas / var deve ser montado gravável.

Para responder à pergunta feita no seu artigo, sim, o sistema irá aguardar na inicialização. O kernel tentará gravar no dmesg e irá travar quando não puder.

    
por 22.04.2014 / 19:51
2

Como afirmado no meu comentário, um /var/log gravável é muito importante, mas há coisas que você pode fazer para garantir que o menor número possível seja salvo. Por exemplo, você pode configurar logrotate para girar os arquivos de registro com base no tamanho deles, compactando os antigos. Você também pode configurar syslog para gravar somente CRIT e acima nos registros (o restante é descartado)

logrotate exemplo:

   compress

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

(Você precisaria configurar logrotate /etc/logrotate.conf para ser executado em um cronjob também).

rsyslog.conf exemplo:

$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                                                 *

Este é provavelmente o melhor meio termo, já que quase nada é registrado, mas você ainda é notificado sobre eventos críticos. Você também pode pensar em configurar o syslog remoto em um servidor com armazenamento maior se a retenção de logs for importante.

    
por 22.04.2014 / 21:43