Posso restringir um usuário com privilégios de root (com sudo) de acessar / excluir um arquivo específico?

0

Eu quero manter um arquivo de log no meu computador. Eu também quero dar privilégios para uma conta diferente para fazer todos os tipos de tarefas específicas do sistema, como montar volumes / instalar pacotes, etc. Para que o usuário tenha privilégios de root, mas deve ser restrito de um único arquivo de log não conseguir alterar / excluir / gravar esse arquivo específico.

    
por E.Bülbül 24.01.2018 / 13:28

4 respostas

2

Primeiro, você pode tornar o arquivo de log unwritable pela raiz através do arquivo sudoers:

user ALL=(ALL) !/var/log/logfile

Isso fará com que o arquivo de log não possa ser modificado, movido ou excluído pela raiz.

Você pode editar o arquivo sudoers para que o usuário possa usar apenas os comandos que você decidiu serem necessários:

user ALL=(ALL) /bin/command1 /bin/command2 /bin/command3

user ALL=(ALL) !ALL

Isso não permitirá comandos que você não queira que o usuário tenha. Você também pode tornar o arquivo sudoers imutável via chattr +i /etc/sudoers para que o usuário não possa modificá-lo como root para permitir o acesso ao arquivo de log.

    
por 24.01.2018 / 15:05
1

Se você não pode limitar o sudo para o usuário, então você pode sincronizar os logs para um nó diferente (rsync / rsyslog).

    
por 24.01.2018 / 14:06
1

Um usuário que recebe permissões de superusuário em um sistema precisa ser

  1. totalmente confiável e
  2. Responsável.

Se esse não for o caso, as operações que o usuário precisa executar como raiz devem ser especificadas de forma que possam ser listadas no arquivo sudoers de maneira precisa (por exemplo, apenas poder executar rm em estes arquivos). Esse usuário também não deve poder usar sudo para obter um ambiente de shell raiz.

Se isso não for possível, considere configurar uma conta não-raiz separada na qual todas as operações necessárias podem ser realizadas.

    
por 24.01.2018 / 17:30
0

Sim, você pode restringir um usuário sudo a restringir a execução de alguns comandos específicos do usuário root. para que ele possa executar a permissão configurada conforme mostrado abaixo.

Exemplo: Você pode dar as permissões necessárias no vi / etc / sudoers ou tipo visudo

Adicione abaixo os tipos de permissões necessárias no arquivo / etc / sudoers.

User_A_permissions:

Cmnd_Alias PERMISSIONS = /usr/sbin/lsof, /usr/bin/ssh, /usr/bin/scp, /usr/bin/rsync, /usr/bin/telnet, /usr/bin/traceroute, /usr/bin/kill, /usr/bin/ps, /usr/bin/netstat, /usr/bin/grep, /usr/bin/crontab, /usr/sbin/tcpdump, /bin/ping, /usr/bin/crontab -u root -l, /usr/bin/crontab -u root -e, /etc/init.d/crond reload, /usr/bin/updatedb, /bin/df, /usr/bin/du, /usr/bin/locate, /usr/bin/find, /bin/su

Depois disso, adicione abaixo da linha

%User_A_permissions          ALL=PERMISSIONS
    
por 24.01.2018 / 13:50