Armadilha?? Não tem armadilha nenhuma!!! Essa é a forma mais comum de implementação quando o objetivo é restringir o acesso do usuário ao shell ou substituí-lo por um script específico.
E não tem problema algum o usuário perceber que o shell dele foi substituído. Bom, mas essa diversidade de soluções no mundo Unix é o que me fascina e cada um deve usar aquilo que melhor lhe convier, não é mesmo??!! Abraços, Daniel Carlos RHCE, LPIC-3 Em 16/11/09, Alan Messias<alancorde...@gmail.com> escreveu: > Levando em consideração que o arquivo passwd é visível por todos os > usuários, > seria mais fácil de ele descobrir essa armadilha se usasse esse arquivo. > > Embora a solução com o passwd funcione, eu ainda optaria pera solução com o > exec. > > Abraços, > > 2009/11/16 Daniel Carlos <daniel.car...@gmail.com> > >> >> >> 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/> >>> >> >> >> > > > > -- > Atenciosamente, > Alan MeC Lacerda > Tecnólogo em Redes de Computadores > CCNA e LPIC-1 > http://alanlacerda.blogspot.com/ > http://www.revista.espiritolivre.org/ > "-"-"-"-"-"-" Of course it runs NetBSD "-"-"-"-"-"-" >