On 5/2/07, Rafa Pongai <[EMAIL PROTECTED]> wrote:

> estou fazendo um script que só irá funcionar com o usuário root, e gostaria 
> de fazer esta verificação no script e caso não seja o "root" chamar um "su", 
> o problema é que quando chamo o "su", ele abre um outro terminal e só 
> continua o script quando dou um "exit" no novo bash que o "su" criou, alguém 
> teria alguma idéia para eu poder fazer isto??


Rafa,

Pensando um pouquinho, cheguei à seguinte solução:

[EMAIL PROTECTED] ~/teste $ cat su.sh
#!/bin/sh

[ $USER == "root" ] || {
  su -c "sh su.sh";
  exit;
}

echo "Oi";
exit;


Usei o parâmetro "-c" do "su" para executar um comando, que no caso é
o próprio script que estou rodando. Depois que eu executo esse script
(aí sim com permissão de root!), eu saio fora... Repare que talvez
seja interessante fazer umas checagens pra ver se o usuário conseguiu
se logar com o "su", e talvez imprimir uma mensagem de erro se não
deu... Tenta aí, deve funcionar com você também ;-)

[]s

Sérgio.

Responder a