O que a linha *. *; Auth, authpriv.none - / var / log / syslog significa no arquivo de configuração do rsyslog?

11

Estou tentando entender o /etc/rsyslog.confarquivo, mas estou perdendo alguma coisa. Por exemplo, isso faz parte do arquivo:

auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
cron.*              /var/log/cron.log
daemon.*            -/var/log/daemon.log
kern.*              -/var/log/kern.log
lpr.*               -/var/log/lpr.log
mail.*              -/var/log/mail.log
user.*              -/var/log/user.log

De acordo com esta página:

O recurso é uma das seguintes palavras-chave: auth, authpriv, cron, daemon, kern, lpr, correio, marca, notícias, segurança (o mesmo que auth), syslog, usuário, uucp e local0 a local7.

A prioridade é uma das seguintes palavras-chave, em ordem crescente: depuração, informações, aviso, aviso, aviso (o mesmo que aviso), err, erro (o mesmo que err) crit, alerta, emergência, pânico (o mesmo que emergir). As palavras-chave error, warn e panic foram descontinuadas e não devem mais ser usadas. A prioridade define a gravidade da mensagem.

Um asterisco ("*") representa todas as instalações ou todas as prioridades, dependendo de onde é usado (antes ou depois do período). A palavra-chave none não significa prioridade do recurso fornecido.

Você pode especificar vários recursos com o mesmo padrão de prioridade em uma instrução usando o operador de vírgula (","). Você pode especificar quantas instalações desejar. Lembre-se de que apenas a parte da instalação dessa declaração é obtida; uma parte prioritária seria ignorada.

Vários seletores podem ser especificados para uma única ação usando o separador de ponto e vírgula (";"). Lembre-se de que cada seletor no campo do seletor é capaz de substituir os anteriores. Usando esse comportamento, você pode excluir algumas prioridades do padrão.

Portanto, isso é bastante compreensível, mas e o caminho do arquivo à direita. Pode ser apenas um caminho, ou com |ou -antes dele (ou talvez até outra coisa). Qual é a diferença entre os três?

Mikhail Morfikov
fonte

Respostas:

16

Dado

*.*;auth,authpriv.none      -/var/log/syslog

*.* significa registrar todas as instalações e todas as prioridades.

auth,authpriv.none significa não registrar os recursos auth e authpriv.

-/var/log/syslogsignifica log no arquivo / var / log / syslog. O traço anterior diz ao syslogd para não chamar fsync (), ou seja, não libere o buffer do kernel no disco após cada gravação no arquivo.

Kyle Jones
fonte
Como auth,authpriv.nonesignifica não registrar? No documento citado, "cada seletor no campo seletor é capaz de substituir os anteriores" - onde estão documentados os detalhes desse comportamento? Eu esperava que a authpeça correspondesse ao recurso de autenticação que já havia sido correspondido *.*, em vez de desativá-lo.
jl6
2
auth,authprivcombina ambos authe authpriv. A .noneparte se aplica a ambos. *.*;auth;authpriv.nonese comportaria como você descreve.
Kyle Jones
OK obrigado! E isso está documentado em algum lugar?
jl6
1
Está implícito na documentação acima. A parte prioritária é ignorada (ignorada) para todos, exceto o último recurso, se você listar vários recursos usando uma vírgula. Os documentos certamente poderiam ser aprimorados nessa área.
Kyle Jones
Eu adicionei a linha *.*;auth,authpriv.none /dev/console para que as mensagens syslog também sejam exibidas no console (tty1) no meu Raspberry Pi. Eu tenho um monitor conectado ao meu servidor Pi que é usado apenas para monitorar os logs. Eu trabalho para fazer qualquer trabalho que você vê.
Será