The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Como faço para mudar para super usuário, em seguida, voltar ao normal dos usuários, utilizando shell script? wrapster Programação Shell Script e 3 06-04-2008 08:11
su (mudar para outro usuário) bjagadeesh Programação Shell Script e 1 05-20-2008 11:27
[Ajuda] Dê privilégio de um usuário ordinário ibmer414 AIX 1 04-08-2008 03:56
comutação entre raiz e um usuário normal melanie_pfefer Programação Shell Script e 3 04-21-2007 08:02
Excepto usuário root. Utilizador normal não é capaz de criar arquivos mallesh UNIX & avançada para usuários experientes 1 06-22-2005 01:18

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 01-24-2008
sasia sasia is offline
Usuário
  
 

Join Date: Jan 2008
Posts: 4
comutação de usuário root para usuário ordinário

Bom dia Pessoal!
Atualmente, estou fazendo um script em AIX, o script será executado um trabalho SAS, o proprietário do script é a raiz, mas a SAS empregos não pode ser executado pela raiz, como ele deve ser executado por um usuário 'sasia'. Mas, dentro do script, cria um logfile raiz, para o que eu preciso é só para a su sasia para a determinado trabalho e depois voltar para o usuário original. o script está escrito abaixo. Pls. ajuda


#! / bin / sh
função logrc
(
if [-f $ drv / $ batchname ". err"]
então
cat $ drv / $ batchname. "errar" | grep 0
RCODE \u003d $?
fi

echo $ passo $ RCODE dtx $ $ $ bpsw desc>> $ drv / $ batchname. "log"

if [$ bpsw! \u003d 1]
então
if [$ RCODE! \u003d 0]
então
echo>> $ drv / $ batchname. "log"
echo "Falha no Trabalho" $ passo "." >> $ Drv / $ batchname. "Log"
echo "procedimento de recuperação:">> $ drv / $ batchname. "log"
if [-f $ rdrv / $ batchname. "rpm"]
então
cat $ rdrv / $ batchname. "rpm">> $ drv / $ batchname. "log"
diferente
echo "No procedimento de recuperação." >> $ Drv / $ batchname. "Log"
fi
saída $ RCODE
fi
fi
return $ RCODE
)


função step00
(
passo \u003d step00
desc \u003d "Excluir arquivos Exisitng gatilho"
cd / sasprog / dispara
if [-f $ st]
então
rm $ st
echo $ st "apagado"
diferente
echo $ st "não existe"
fi
if [-f $ ut]
então
$ rm ut
echo $ ut "apagado"
diferente
echo $ ut "não existe"
fi

echo data
RCODE \u003d $?
logrc
)


função step01
(
passo \u003d step01
if [ "$ rrstep!" \u003d ""] & & [ "$ rrstep!" \u003d "$ passo"]
então
echo $ passo pulado
return 0
fi
desc \u003d "Call SAS trabalho"
Quoteme () (
if [$ #-gt 1]; então
quoteme \u003d "\" $ * \ ""
diferente
quoteme \u003d $ 1
fi
)
cd `cat / sasconfig / BPICRMS / jobpath / pré`
cmd \u003d "/ sas9/SAS913/sas"
por arg em "SET_RUN_CONTROL_TABLE_FOR_ALAS.sas"
fazer
Quoteme $ arg
tmp \u003d "$ quoteme"
cmd \u003d "$ cmd $ tmp"
feito
cmd $
RCODE \u003d $?
logrc
)





# principal script

drv \u003d / sasprog / joblog
rdrv \u003d / sasprog/Lev1/rdrv
batchname \u003d SET_RUN_CONTROL_TABLE_FOR_ALAS
dtx \u003d `date + '% y% m% d'` "" `date + '% H% M% S'`
rrstep \u003d ""
bpsw \u003d 0
ut \u003d U_SET_RUN_CONTROL_TABLE_FOR_ALAS.txt
st \u003d S_SET_RUN_CONTROL_TABLE_FOR_ALAS.txt
if [ "$ 1"! \u003d ""] & & [ "$ 1"! \u003d "step00"]
então
echo Job Reiniciou em US $ 1 $ dtx>> $ drv / $ batchname. "log"
rrstep \u003d $ 1
diferente
echo $ Job começar dtx> $ drv / $ batchname. "log"
rrstep \u003d ""
fi

step00
step01
saída $ RCODE




o que eu preciso é o de rever o functyion 01 para que o usuário mude para sasia, execute o sasjob e depois voltar como root. Graças, em avançadas para o ajudar. Obrigado
# fim do script
  #2 (permalink)  
Old 01-25-2008
RTM's Avatar
RTM RTM is offline Forum Advisor  
Hog Hunter
  
 

Join Date: Apr 2002
Localização: Na minha moto
Posts: 3.039
Se $ cmd é o lugar onde você estiver executando o comando como root, mude-o para
su - sasia-c "$ cmd"

Testá-lo para ver se é o que você precisa e leia a página man sobre su comando.
  #3 (permalink)  
Old 01-25-2008
sasia sasia is offline
Usuário
  
 

Join Date: Jan 2008
Posts: 4
tnx pela resposta,
  #4 (permalink)  
Old 01-25-2008
ramen_noodle ramen_noodle is offline Forum Advisor  
Usuário
  
 

Join Data: dezembro 2007
Localização: Virginia, E.U.A..
Lugares: 251

Código:
 su - root and I hope you can deal with your model.

Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 12:52.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0