A menos que você saiba quais strings específicas os usuários estarão procurando e os arquivos específicos que serão verificados usando sudo
não é uma boa solução para isso. Se você criar uma regra como esta:
blizz ALL=root NOPASSWD: /bin/grep * /var/log/maillog*
O usuário poderá executar comandos como este:
grep root /etc/shadow /var/log/maillog
grep = /root/my.cnf /var/log/maillog
Eles poderão ler qualquer arquivo no sistema. Você pode encontrar mais informações sobre esse problema aqui:
link
Se você souber quais strings e arquivos o usuário verificará, você pode definir regras separadas para cada cenário. Por exemplo:
Cmnd_Alias MAILLOGA = /bin/grep 'Connection refused' /var/log/maillog
Cmnd_Alias MAILLOGB = /bin/grep 'Connection refused' /var/log/maillog.1
Cmnd_Alias MAILLOGC = /bin/grep 'imap-login' /var/log/maillog
Cmnd_Alias MAILLOGD = /bin/grep 'imap-login' /var/log/maillog.1
blizz ALL=root NOPASSWD: MAILLOGA, MAILLOGB, MAILLOGC, MAILLOGD
No entanto, isso pode ser complicado e pode resultar em uma configuração excessivamente grande do sudo.
Como alternativa, em vez de grep
, você pode conceder acesso aos arquivos por meio do comando more
e, em seguida, eles podem pesquisar os arquivos de forma interativa:
Cmnd_Alias MAILLOG = /bin/more /var/log/mailllog
Cmnd_Alias MAILLOG1 = /bin/more /var/log/mailllog.1
Cmnd_Alias MAILLOG2 = /bin/more /var/log/mailllog.2
Cmnd_Alias MAILLOG3 = /bin/more /var/log/mailllog.3
blizz ALL=root NOPASSWD: MAILLOGA, MAILLOGB, MAILLOGC, MAILLOGD
No entanto, isso não permite que o usuário mantenha um histórico de pesquisas (por exemplo, .bash_history
) ou crie seus próprios scripts ou aliases para pesquisas. Além disso, se você tiver a rotação de logs em vigor, eles não poderão analisar os registros compactados.
Nota: Não conceda acesso sudo ao comando less
. Um usuário poderia sair do processo, por exemplo, executar !/bin/bash
em less
daria a eles acesso root ao sistema.
Outra opção é ter regras para eles para cat
dos arquivos, de modo que eles possam direcioná-los para grep
da maneira que entenderem. Por exemplo:
sudo cat /var/log/maillog | grep "anything can go here"
No final, a mais simples e provavelmente a melhor solução é conceder acesso de leitura aos logs, alterando as permissões nos arquivos de log. Você poderia fazer algo assim:
groupadd logcheck
chgrp logcheck /var/log/maillog*
chmod g+r /var/log/maillog*
useradd -G logcheck blizz
E eles podem usar qualquer ferramenta que desejarem analisar os arquivos (por exemplo, grep
, zgrep
, less
, more
, view
, etc).