10 configurações úteis de sudoers para definir 'sudo' no Linux
- 1739
- 402
- Howard Fritsch
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:
- Ele lê e passa /etc/sudoers, olha o usuário da invocação e suas permissões,
- 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),
- Depois disso, Sudo cria um processo infantil no qual chama setuid () Para mudar para o usuário alvo
- 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 /sudoersArquivo/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:
- Usado quando um administrador do sistema não confia nos usuários do sudo para ter uma variável de ambiente de caminho seguro
- 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 personalizado5. 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 LOGSaí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:
- Sempre - sempre ligue um usuário.
- Uma vez - apenas lecione um usuário na primeira vez que eles executam o comando sudo (isso é usado quando nenhum valor é especificado)
- 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 = 5Aumentar 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 insultosVamos 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.
- « Cloudstats.eu - servidor fácil e monitoramento de sites da nuvem
- 3 maneiras de excluir permanentemente e com segurança 'arquivos e diretórios' no Linux »