//Executando comando com outro usuário dentro de um shell script
shell-script

Executando comando com outro usuário dentro de um shell script

 
Executando comando com outro usuário dentro de um shell script

Gosto de utilizar estes comando em funções, que são necessárias para serem executadas pelo crontab do root mais por outros usuários assim mantendo as permissões nos arquivos.

Você pode utilizar o su do seguinte modo para fazer isso no shell script:

A opção -c especifica que irá passar um único comando ao shell
A opção -s é utilizado para especificar com qual shell chamaremos o comando sendo atrelado o shell à um usuário específico.

Uma outra forma para fazer isso é através do uso do sudo do seguinte modo:

A opção -h é uma política de segurança que permite definir a variável de ambiente $HOME para o usuário especificado(root é por padrão).

A opção -u especifica o usuário que irá executar o comando.

 

Um outro comando que pode ser utilizado para executar essa função é o  runuser. Sua sintaxe é bem prática e básica, poderemos executa-lo da seguinte forma:

Os comandos abaixo servem de teste, mostrando qual o usuário atual e o PID do bash:

No meu caso testei com o script:

Resultado:

Para mais informações rode o comando man runuser.

Sistemas Operacionais
GNU/Linux, BSD, Unix-like e Software Livre


Sou Administrador de Redes e Servidores Windows e Linux. Quando consigo Curto Caminhar, Fazer Trilhas, Natureza e insetos!