10 configurações úteis de sudoers para definir 'sudo' no Linux

10 configurações úteis de sudoers para definir 'sudo' no Linux

No Linux e em outros sistemas operacionais do tipo Unix, apenas o raiz O usuário pode executar todos os comandos e executar certas operações críticas no sistema, como instalar e atualizar, remover pacotes, criar usuários e grupos, modificar importantes arquivos de configuração do sistema e assim por diante.

No entanto, um administrador do sistema que assume o papel do usuário raiz pode permitir que outros usuários normais do sistema com a ajuda do comando sudo e algumas configurações para executar alguns comandos, além de realizar várias operações vitais do sistema, incluindo as mencionadas acima.

Como alternativa, o administrador do sistema pode compartilhar a senha do usuário root (que não é um método recomendado) para que os usuários normais do sistema tenham acesso à conta de usuário root via su comando.

sudo Permite que um usuário permitido execute um comando como root (ou outro usuário), conforme especificado pela Política de Segurança:

  1. Ele lê e passa /etc/sudoers, olha o usuário da invocação e suas permissões,
  2. Em seguida, solicita ao usuário de invocar uma senha (normalmente a senha do usuário, mas também pode ser a senha do usuário alvo. Ou pode ser ignorado com a tag nopoasswd),
  3. Depois disso, Sudo cria um processo infantil no qual chama setuid () Para mudar para o usuário alvo
  4. Em seguida, ele executa um shell ou o comando dado como argumentos no processo infantil acima.

Abaixo estão dez /etc/sudoers configurações de arquivo para modificar o comportamento de sudo comando usando Padrões entradas.

$ sudo gato /etc /sudoers 
Arquivo/etc/sudoers
# # Este arquivo deve ser editado com o comando 'visudo' como root. # # Por favor, considere adicionar conteúdo local em /etc /sudoers.d/ em vez de # modificar diretamente este arquivo. # # Veja a página do homem para obter detalhes sobre como escrever um arquivo sudoers. # Padrões Env_Reset Padrões Mail_badpass Padrões Secure_Path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" padrão logfile = "/var/log/sudo.Log "Padrões Lecture =" sempre "Padrões Badpass_message =" A senha está errada, tente novamente "Padrões Passwd_tries = 5 Padrões insultos Padrões Log_input, log_output 

Tipos de entradas de padrões

Parâmetro padrão, parâmetro_list #ffet todos os usuários em qualquer host [email protected] _list parâmetro, parâmetro_list #fets todos os usuários em um host específico padrões: user_list parâmetro, parâmetro_list #fets um usuário específico padrão!Parâmetro cmnd_list, parâmetro_list #fets um comando específico padrão> parâmetro runas_list, parâmetro_list #affepts comandos sendo executados como um usuário específico 

Para o escopo deste guia, zero para o primeiro tipo de Padrões Nos formulários abaixo. Parâmetros podem ser sinalizadores, valores inteiros, strings ou listas.

Você deve observar que as bandeiras são implicitamente booleanas e podem ser desligadas usando o '!' operador e listas têm dois operadores de atribuição adicionais, += (adicione à lista) e -= (remover da lista).

Padrões de parâmetro ou padrão parâmetro = parâmetro de valor ou padrão -= Valor Padrões Parâmetro += Valor ou Padrão !parâmetro 

1. Defina um caminho seguro

Este é o caminho usado para cada comando executado com sudo, ele tem duas importações:

  1. Usado quando um administrador do sistema não confia nos usuários do sudo para ter uma variável de ambiente de caminho seguro
  2. Para separar o “caminho raiz” e o “caminho do usuário”, apenas os usuários definidos por exemp_group não são afetados por esta configuração.

Para defini -lo, adicione a linha:

Padrão Secure_Path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" 

2. Ativar sudo na sessão de login de usuários TTY

Para permitir que Sudo seja invocado de um real tty mas não através de métodos como Cron ou CGI-BIN scripts, adicione a linha:

Padrões requisitos 

3. Execute o comando sudo usando um pty

Algumas vezes, os invasores podem executar um programa malicioso (como um vírus ou malware) usando sudo, o que novamente formaria um processo de fundo que permanece no dispositivo de terminal do usuário, mesmo quando o programa principal terminar de executar.

Para evitar esse cenário, você pode configurar sudo para executar outros comandos apenas de um psuedo-pty usando o use_pty Parâmetro, se o registro de E/S está ativado ou não o seguinte:

Padrão de uso_pty 

4. Crie um arquivo de log sudo

Por padrão, o sudo registra através do syslog (3). No entanto, para especificar um arquivo de log personalizado, use o parâmetro logfile como assim:

Padrões LogFile = "/var/log/sudo.registro" 

Para registrar o nome do host e o ano de quatro dígitos no arquivo de log personalizado, use log_host e log_year Parâmetros respectivamente da seguinte forma:

Padrão Log_host, log_year, LogFile = "/var/log/sudo.registro" 

Abaixo está um exemplo de um arquivo de log de sudo personalizado:

Crie arquivo de log sudo personalizado

5. Log sudo comando entrada/saída

O log_input e log_output Os parâmetros permitem que o sudo execute um comando no pseudo-tty e registre toda a entrada do usuário e toda a saída enviada para a tela receptivamente.

O diretório de log de E/S padrão é /var/log/sudo-io, E se houver um número de sequência de sessão, ele será armazenado neste diretório. Você pode especificar um diretório personalizado através do iolog_dir parâmetro.

Padrão Log_Input, Log_Output 

Existem algumas sequências de fuga são suportadas, como %seq que se expande para um número de sequência Base-36 que cresce monotonicamente, como 000001, onde cada dois dígitos é usado para formar um novo diretório, e.g. 00/00/01 Como no exemplo abaixo:

$ cd/var/log/sudo-io/$ ls $ cd 00/00/01 $ LS $ CAT LOG 
Saída de entrada de log sudo

Você pode ver o restante dos arquivos nesse diretório usando o comando CAT.

6. Palestra de usuários do sudo

Para dar palestras aos usuários do sudo sobre o uso de senha no sistema, use o palestra parâmetro como abaixo.

Tem 3 valores possíveis:

  1. Sempre - sempre ligue um usuário.
  2. Uma vez - apenas lecione um usuário na primeira vez que eles executam o comando sudo (isso é usado quando nenhum valor é especificado)
  3. Nunca - nunca ligue o usuário.
 Padrão Lecture = "sempre" 

Além disso, você pode definir um arquivo de palestra personalizado com o lecture_file Parâmetro, digite a mensagem apropriada no arquivo:

Padrão lecture_file = "/path/to/arquivo" 
Palestra de usuários do sudo

7. Mostre a mensagem personalizada ao inserir a senha do sudo errada

Quando um usuário insere uma senha errada, uma determinada mensagem é exibida na linha de comando. A mensagem padrão é “Desculpe, tente novamente”, Você pode modificar a mensagem usando o BadPass_Message Parâmetro da seguinte forma:

Padrão Badpass_message = "A senha está errada, tente novamente" 

8. Aumentar a senha do sudo tenta o limite

O parâmetro passwd_tries é usado para especificar o número de vezes que um usuário pode tentar inserir uma senha.

O valor padrão é 3:

Padrões Passwd_tries = 5 
Aumentar as tentativas de senha do sudo

Para definir um tempo limite de senha (o padrão é de 5 minutos) usando passwd_timeout Parâmetro, adicione a linha abaixo:

Padrão Passwd_timeout = 2 

9. Deixe sudo insultar você quando você inserir senha errada

Caso um usuário digite uma senha errada, o sudo exibirá insultos no terminal com o parâmetro de insultos. Isso desligará automaticamente o BadPass_Message parâmetro.

Padrões de insultos 
Vamos insultá -lo quando inserir senha errada

consulte Mais informação: Deixe sudo insultar você quando você inserir senha incorreta

10. Saiba mais configurações de sudo

Além disso, você pode aprender mais sudo Configurações de comando por leitura: diferença entre su e sudo e como configurar sudo no linux.

É isso! Você pode compartilhar outras configurações úteis de comando sudo ou truques e dicas com usuários do Linux por aí através da seção de comentários abaixo.