Como executar um script de shell como um usuário diferente

Como executar um script de shell como um usuário diferente
Às vezes, você pode se encontrar necessário para executar um script de shell como um usuário diferente do usuário ativo no shell. Isso é muito fácil e pode ser feito em algumas etapas simples, então como você faz isso? Vamos descobrir.

Pré -requisitos

Antes de começar, verifique se você tem acesso ao shell de um sistema Linux; Qualquer distribuição do Linux vai se sair bem. Neste guia, estamos executando o Ubuntu 18.04.

Igualmente crucial é garantir que você tenha um script de shell com permissões de execução. Temos um script de shell simples chamado Bem-vindo.sh Isso solicita o nome de um usuário e o imprime no terminal. Aqui está uma prévia.

Como executar um script de shell como outro usuário

Normalmente, executar um script de shell como o usuário atualmente conectado é bastante fácil. Basta ligar para o script do shell da seguinte maneira:

$ ./Bem-vindo.sh

Mas como você executaria o script como outro usuário além de si mesmo? Para conseguir isso, basta usar a sintaxe mostrada onde o OUTROUSER é o usuário diferente que você deseja executar o script.

$ su Outrouser -s Script.sh

Suponha que queremos executar o script como o linuxways do utilizador. O comando a ser executado será:

$ su Linuxways -S Welcome.sh

Para confirmar que o outro usuário executou o script, executaremos o comando como mostrado.

$ sudo -h -u Othersuser Bash -C 'Echo "Eu sou $ usuário, com uid $ uid"'

Nesse caso, nosso outro usuário é linuxways, Então, devemos invocar o comando.

$ sudo -h -u linuxways bash -c 'echo "eu sou $ usuário, com uid $ uid"'

O $ Usuário e $ Uid Variáveis ​​Imprimem o nome de usuário e o UID do usuário executando o script. Em caso de dúvida ou caso você queira verificar isso, você pode ver o /etc/passwd Arquive e pesquise os detalhes do usuário da seguinte forma.

$ cat /etc /passwd | Grep linuxways

Aqui está um resumo da saída de ambos os comandos. Observe como o nome de usuário e o UID de executar o script do shell correspondem aos do /etc/passwd arquivo.

Conclusão

Se você se perguntou como executar um script de shell como outro usuário, esperamos que sua pesquisa tenha chegado ao fim.