alternar usuários

1. alternar usuários

Márcio Demetrio Bacci
bacci

(usa Debian)

Enviado em 11/12/2014 - 21:53h

Boa noite pessoal.

Fiz um script para fazer backup de uma aplicação, entretanto quando vou realizar o backup do PostgreSQL tenho que utilizar o usuário postgres.

Depois eu preciso voltar a ser root para reiniciar vários serviços, mas não consigo mais me tornar root.

Alguém poderia dar uma ajuda?

Obrigado.

rascunho do script

#!/bin/bash

...

su postgres

....

$senha = "123456"

su

echo $senha

exit


  


2. Re: alternar usuários

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/12/2014 - 22:01h

Você pode realizar todas as tarefas do seu script como usuário normal e, para as tarefas do root, usar o sudo; assim, você especifica a senha no momento em que for executar o script;


3. Re: alternar usuários

Márcio Demetrio Bacci
bacci

(usa Debian)

Enviado em 11/12/2014 - 23:13h

A ideia é que o script rode automático, pois ele realiza o backup do meu servidor web.

Eu começo como root para parar os serviços. Depois me torno postgres para o backup do banco. Por fim, para reiniciar os serviços tenho que me tornar root novamente.




4. Re: alternar usuários

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/12/2014 - 23:40h

Saudações Márcio,

Eu recomendo o uso da opção [ -c | --comand ] do 'su' para não iniciar um shell
interativo e ser obrigado a manipulá-lo usando o 'expect'. Segue exemplo com a
opção '-c':

#!/bin/bash

echo $USER # root

user=postgres
/bin/su $user --login --command '
echo $USER # postgres
senha="123456"
echo $senha
'

echo $USER # root novamente




5. Re: alternar usuários

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 12/12/2014 - 09:34h

textmode escreveu:

Saudações Márcio,

Eu recomendo o uso da opção [ -c | --comand ] do 'su' para não iniciar um shell
interativo e ser obrigado a manipulá-lo usando o 'expect'. Segue exemplo com a
opção '-c':

#!/bin/bash

echo $USER # root

user=postgres
/bin/su $user --login --command '
echo $USER # postgres
senha="123456"
echo $senha
'

echo $USER # root novamente



Complementando o q vc disse, vou colocar um exemplo prático disso:


su - postgres -c 'comando desejado'


Ou, se preferir, criar um script com os comandos sem utilizar su ou sudo e registrar no cron da seguinte forma:


crontab -e

00 00 * * * postgres script.sh







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts