CentOS 7 sudo não executando comandos como usuário

2

Estou com um problema que espero que alguém possa me ajudar.

Estou escrevendo um script bash para configurar algum software, ou seja, nginx, postgres etc

Tudo está indo bem até agora, exceto quando eu for configurar o PostgreSQL

Eu preciso executar o seguinte comando:

psql -c "CREATE ROLE myboxname LOGIN UNENCRYPTED PASSWORD 'secret' SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;"

MAS eu preciso fazer isso através do sudo.

Meu comando completo é o seguinte:

sudo su - postgres psql -c "CREATE ROLE myboxname LOGIN UNENCRYPTED PASSWORD 'secret' SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;"

Quando eu executo isso, recebo o seguinte:

psql: CREATE: command not found

Mas se eu fizer o seguinte, funciona bem

sudo su - postgres
psql -c "CREATE ROLE myboxname LOGIN UNENCRYPTED PASSWORD 'secret' SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;"

Eu estou perdendo uma bandeira no meu comando sudo ou algo assim? .... Qualquer ajuda seria muito apreciada.

    
por CodeCodeCodeCode 10.02.2018 / 04:29

1 resposta

2

Se o usuário for root, você poderá usar a opção -c com su

su - postgres -c "<commands>"

Ou use sudo com -c

sudo -U postgres -c "<commands>" -s /bin/bash
    
por 10.02.2018 / 04:54