Como executar scripts de shell com comando sudo no Linux

Como executar scripts de shell com comando sudo no Linux

sudo é uma poderosa ferramenta de linha de comando que permite um “usuário permitido”Para executar um comando como outro usuário (o superusuário por padrão), conforme definido por uma política de segurança. Na maioria dos sistemas Linux, senão todos os sistemas Linux, a política de segurança é conduzida pelo /etc/sudoers arquivo.

Leia também: 10 configurações úteis de sudoers para definir 'sudo' no Linux

Portanto, para executar um script ou programa de shell como root, você precisa usar o comando sudo. No entanto, sudo reconhece e executa apenas comandos que existem nos diretórios especificados no seguro_path no /etc/sudoers, a menos que um comando esteja presente no seguro_path, Você combaterá um erro como o abaixo.

Isso acontecerá mesmo se o script existir em um diretório no CAMINHO variável ambiental, porque quando um usuário chama sudo, CAMINHO é substituído por seguro_path.

$ echo $ caminho $ ls -l $ sudo proconport.SH 80 
Erro sudo ao executar o script

No cenário acima, o diretório /Home/Aaronkilik/Bin está no CAMINHO variável de ambiente e estamos tentando executar o script /Home/Aaronkilik/Bin/Proconport.sh (encontra o processo ouvindo em uma porta) com privilégios de raiz.

Então encontramos o erro “Sudo: Proconport.sh: comando não encontrado", desde /Home/Aaronkilik/Bin não está no sudo seguro_path Como mostrado na próxima captura de tela.

Verifique o caminho seguro do sudo

Para consertar isso, precisamos adicionar o diretório que contém nossos scripts no sudo seguro_path usando o Comando Visudo editando /etc/sudoers arquivo como segue.

$ sudo visudo 

Atenção: Este método tem sérias implicações de segurança, especialmente em servidores em execução na Internet. Dessa forma, corremos o risco de expor nossos sistemas a vários ataques, porque um invasor que consegue obter acesso a um diretório inseguro (sem privilégios de superusuário) que foi adicionado ao Secure_Path, pode executar um script/programa malicioso com com Comando sudo.

Por um motivo de segurança, confira o seguinte artigo do site do sudo explica uma vulnerabilidade relacionada a Secure_Path: https: // www.sudo.ws/sudo/alertas/seguro_path.html

De preferência, podemos fornecer o caminho absoluto a um script enquanto o executa com sudo:

$ sudo ./proconport.SH 80 
Execute o script usando o comando sudo

É isso! Você pode seguir a lista de artigos sobre o comando sudo:

  1. Como executar o comando 'sudo' sem inserir uma senha no Linux
  2. Como manter o tempo limite de senha 'sudo' sessão por mais tempo no Linux
  3. Como corrigir “O nome de usuário não está no arquivo sudoers. Este incidente será relatado "no Ubuntu
  4. Deixe sudo insultar você quando você inserir senha incorreta

Se você tiver alguma dúvida ou pensamento sobre este artigo, compartilhe conosco através do formulário de comentário abaixo.