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 "-"-"-"-"-"-"
>

Responder a