Olá Marcus, A solução com o exec é interessante, mas você poderia ter resolvido o seu problema simplesmente definindo no passwd que o shell do seu usuário é o seu script. Dessa forma, assim que ele logasse, o seu script seria executado e o usuário não teria um shell disponível ao cancelar a execução do script.
Abraços, Daniel Carlos RHCE, LPIC-3 2009/11/14 Marcus Thiago Lages Duarte <marcus_rj...@yahoo.com.br> > > > Excelente explicacao do conrado. Acrescentando um exemplo prático do > comando exec que me foi extremamente útil há um tempo atrás. > > Eu precisava colocar um usuário dentro de um script interativo ao fazer > logon via ssh, após terminar o script o usuário era desconectado da sessao. > O usuário não poderia em momento algum ter acesso ao shell, so deveria > executar o script e sair. > Beleza, coloquei o script dentro do .bashrc para executar no logon, so que > tinha um detalhe, o usuário poderia apertar control-c a qualquer momento e > sair do script e com isso ter acesso ao shell, o que eu realmente nao > queria. > Solução? coloquei o script utilizando o exec antes. Tipo -> exec > /bin/myscript. Pronto! Agora caso o usuário fosse espertinho e digitasse > control-c ele simplesmente era expulso do logon, já que meu script com o > "exec" na frente deixou de ser um processo filho do bash, mas passou a ser o > real (único) shell do usuário. > > Abs! > > --- Em *qua, 11/11/09, Conrado Pinto Rebessi > <conradopi...@gmail.com>*escreveu: > > > De: Conrado Pinto Rebessi <conradopi...@gmail.com> > Assunto: Re: [lpi] comado exec > Para: lpi@yahoogrupos.com.br > Data: Quarta-feira, 11 de Novembro de 2009, 22:58 > > > > Da pagina de manual do bash(1), lah pela linha 3150... > > exec [-cl] [-a name] [command [arguments]] > If command is specified, it replaces the shell. No new > process is created > traduzindo: Se um comando é especificado, ele toma o lugar do shell. Não é > criado um novo processo. > Basicamente, vc tem q pensar em gerencia de processos. O normal, qdo vc > chama um comando, o kernel "forka" (termo bonito, nao?) um novo processo, ou > seja, o bash q vc tava usando continua existindo e eh criado um novo > processo. Qdo vc usa o exec, o processo q vc chamou toma o lugar do bash. > > Olha o exemplo: > > Sem exec: > $ pstree -p | grep -B 1 pstree > |-bash(5593) -+-bash(5620) > | `-pstree(5619) > conr...@conrado- tablet:~$ ksh > $ pstree -p | grep -B 1 pstree > |-bash(5593) ---ksh(5621) -+-grep(5623) > | `-pstree(5622) > > Com exec: > $ pstree -p | grep -B 1 pstree > |-bash(5563) -+-grep(5581) > | `-pstree(5580) > $ exec ksh > $ pstree -p | grep -B 1 pstree > |-ksh(5563)- +-grep(5584) > | `-pstree(5583) > > > Ajudei? > > []'s > > Conrado > > 2009/11/10 Wairisson <wgom...@yahoo. > com.br<http://mc/compose?to=wgom...@yahoo.com.br> > > > >> >> >> alguém pode me dar uma descrição mais tangente do uso prático do comando >> exec ??? >> >> Desde já obrigado a tdos ! >> >> > > > -- > Conrado Pinto Rebessi > conradopinto@ gmail.com <http://mc/compose?to=conradopi...@gmail.com> > Linux Registered User #179496 > http://counter. li.org <http://counter.li.org> - Get Counted! > > |_|0|_| > |_|_|0| > |0|0|0| > > > ------------------------------ > Veja quais são os assuntos do momento no Yahoo! + Buscados: Top > 10<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/>- > Celebridades<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/celebridades/>- > Música<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/m%C3%BAsica/>- > Esportes<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/esportes/> > >