Valeu Sérgio,

era exatamente isto que procurava, só que tive que adicionar o "- root" no su, 
porque senão quando logava como root o $USER ainda retornava o nome do usuario 
e não "root".

Obrigado!!!!
Rafael


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

#!/bin/sh



[ $USER == "root" ] || {

  su - root -c "sh su.sh";

  exit;

}



echo "Oi";

exit;

----- Mensagem original ----
De: Sérgio Durigan Júnior <[EMAIL PROTECTED]>
Para: [email protected]
Enviadas: Quarta-feira, 2 de Maio de 2007 17:09:37
Assunto: Re: [shell-script] Login como root









  


    
            On 5/2/07, Rafa Pongai <[EMAIL PROTECTED] com.br> 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.



    
  

    
    




<!--

#ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean, sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean, 
sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;}
#ygrp-vitnav{
padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
#ygrp-vitnav a{
padding:0 1px;}
#ygrp-actbar{
clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;}
#ygrp-actbar .left{
float:left;white-space:nowrap;}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;font-size:77%;padding:15px 0;}
#ygrp-ft{
font-family:verdana;font-size:77%;border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;}

#ygrp-vital{
background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
#ygrp-vital #vithd{
font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
#ygrp-vital ul{
padding:0;margin:2px 0;}
#ygrp-vital ul li{
list-style-type:none;clear:both;border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
#ygrp-vital ul li .cat{
font-weight:bold;}
#ygrp-vital a {
text-decoration:none;}

#ygrp-vital a:hover{
text-decoration:underline;}

#ygrp-sponsor #hd{
color:#999;font-size:77%;}
#ygrp-sponsor #ov{
padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;margin:0;}
#ygrp-sponsor #ov li{
list-style-type:square;padding:6px 0;font-size:77%;}
#ygrp-sponsor #ov li a{
text-decoration:none;font-size:130%;}
#ygrp-sponsor #nc {
background-color:#eee;margin-bottom:20px;padding:0 8px;}
#ygrp-sponsor .ad{
padding:8px 0;}
#ygrp-sponsor .ad #hd1{
font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
#ygrp-sponsor .ad a{
text-decoration:none;}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;}
#ygrp-sponsor .ad p{
margin:0;}
o {font-size:0;}
.MsoNormal {
margin:0 0 0 0;}
#ygrp-text tt{
font-size:120%;}
blockquote{margin:0 0 0 4px;}
.replbq {margin:4;}
-->







__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

[As partes desta mensagem que não continham texto foram removidas]

Responder a