Bash Script executa o comando como usuário

0

Só estou querendo saber se é possível executar um comando dentro de um script bash como um usuário especificado e fornecer a senha em uma string.

No momento eu tenho

COMMAND="${DIRECTORY}/script.sh"

su -c postgres $COMMAND

Mas isso está me pedindo uma senha que não poderei digitar o tempo todo, pois esse script será executado em um cron a cada hora

    
por Trent 29.01.2016 / 13:15

2 respostas

1

Várias possibilidades:

sudo

Se você puder configurá-lo de maneira segura e flexível o suficiente para suas chamadas, use sudo para permitir que o usuário do script execute os comandos como usuário postgres sem precisar de uma senha.

sudo com script de wrapper

Você pode escrever um script de wrapper que seja gravável por postgres ou root apenas e verifique se a chamada (parâmetros de script) está correta. sudo pode permitir que o usuário do script chame o script wrapper com parâmetros aleatórios como postgres .

SSH

Se houvesse apenas uma linha de comando a ser executada, você poderia usar o SSH. Você pode vincular uma determinada chave a um comando, ou seja, essa chave não pode ser usada para mais nada.

    
por 29.01.2016 / 13:35
-1

Podemos usar o pipe para aplicar a senha e eu a usei e funciona perfeitamente bem.

COMMAND="$ {DIRECTORY} /script.sh"

su -c postgres $ COMMAND | passwd "digite sua senha aqui"

    
por 29.01.2016 / 13:52