adicionando conteúdo local em /etc/sudoers.d/ em vez de modificar diretamente o arquivo sodoers via visudo

8

Você pode, por favor, me indicar alguns exemplos e instruções mais detalhadas sobre /etc/sudoers.d /

Gostaria de dar permissão a alguns grupos para executar alguns comandos, mas de forma adequada, para não criar brechas desnecessárias no modelo de segurança do Ubuntu em uma máquina multiusuário.

Nos tempos antigos, fiz algumas customizações simples de sudoers, mas aparentemente agora o /etc/sudoers.d/ é uma maneira mais apropriada e eu gostaria de entendê-lo melhor.

    
por Pawel Debski 30.06.2017 / 19:01

1 resposta

11

Parece que ninguém se atreveu, então fiz minha própria pesquisa. Aqui estão os resultados.

Como este tópico link enfatiza que / etc / sudoers é um arquivo de configuração de todo o sistema que é alterado nas atualizações do sistema e é altamente frágil para alterações impróprias. Ou seja você pode perder o acesso ao sistema ou fazer com que ele não inicialize mais com alterações impróprias.

$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#

(... some other content ...)

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Contrário ao que você acha que a diretiva #includedir não está comentada. É válido e funciona para incluir todos os arquivos no diretório /etc/sudoers.d .

O conteúdo deste diretório sobrevive aos upgrades do sistema, assim como o sudo é muito restrito a ele:

  1. Erros no arquivo não fizeram com que o sudo falhasse.
  2. As regras de permissão parecem menos rigorosas.

Portanto, é menos provável que você reduza o sistema com seus erros.

$ ls -l /etc/sud*
-r--r----- 1 root root  755 sty 20 17:03 /etc/sudoers

/etc/sudoers.d:
total 7
-r--r----- 1 root root 958 mar 30  2016 README
$ sudo cat /etc/sudoers.d/README
#
# As of Debian version 1.7.2p1-1, the default /etc/sudoers file created on
# installation of the package now includes the directive:
# 
#   #includedir /etc/sudoers.d
# 
# This will cause sudo to read and parse any files in the /etc/sudoers.d 
# directory that do not end in '~' or contain a '.' character.
# 
# Note that there must be at least one file in the sudoers.d directory (this
# one will do), and all files in this directory should be mode 0440.
# 
# Note also, that because sudoers contents can vary widely, no attempt is 
# made to add this directive to existing sudoers files on upgrade.  Feel free
# to add the above directive to the end of your /etc/sudoers file to enable 
# this functionality for existing installations if you wish!
#
# Finally, please note that using the visudo command is the recommended way
# to update sudoers content, since it protects against many failure modes.
# See the man page for visudo for more information.
#

Por favor, note que os arquivos neste diretório devem ser editados com o comando visudo :

$ sudo visudo -f /etc/sudoers.d/veracrypt
  GNU nano 2.5.3        File: /etc/sudoers.d/veracrypt.tmp                      

# Users in the veracryptusers group are allowed to run veracrypt as root.
%veracryptusers ALL=(root) NOPASSWD:/usr/bin/veracrypt

Observe que visudo pode usar editores diferentes para a tarefa real, conforme descrito aqui: link

Aqui estão mais alguns links que achei úteis:

por Pawel Debski 02.07.2017 / 11:16