Re: execuando script ao logar

2007-02-26 Por tôpico Bruno Schneider

On 2/22/07, hamacker wrote:

Mas voltando ao tema do assunto, a partir de alguma atualização do
debian, o bash ignora ~/.bash*  se for carregado por um link
simbolico


On 2/23/07, Bruno Schneider wrote:

Testei aqui com o bash 3.1.17 (chamado a partir de um link simbólico)
e ele interpretou o .bashrc. Acho que estás confundindo com o fato que
o bash não interpreta os .bash* quando chamado como sh.


On 2/23/07, hamacker wrote:

Se tento o login onde o shell é /bin/sh  o script menu.sh não é carregado.
Se troco de volta para /bin/bash ele então é carregado.


Parece que de uns tempos prá cá, eu ando escrevendo em grego nessa lista...

--
Bruno de Oliveira Schneider
http://www.dcc.ufla.br/~bruno/



Re: execuando script ao logar

2007-02-23 Por tôpico Bruno Schneider

On 2/22/07, Maxwillian Miorim wrote:


On 2/22/07, hamacker wrote:
 Mas voltando ao tema do assunto, a partir de alguma atualização do
 debian, o bash ignora ~/.bash*  se for carregado por um link
 simbolico, portanto, /bin/sh não vai chamar ~/.bash* enquanto
 /bin/bash funcionará sem problemas.



Eu não sabia disso, apesar de não usar os ~/.bash*, é
interessante... Ajuda a explicar algumas coisas que não funcionam em
alguns casos :D


Isso não parece correto. Hamacker, poderia citar uma referência?

Testei aqui com o bash 3.1.17 (chamado a partir de um link simbólico)
e ele interpretou o .bashrc. Acho que estás confundindo com o fato que
o bash não interpreta os .bash* quando chamado como sh.

--
Bruno de Oliveira Schneider
http://www.dcc.ufla.br/~bruno/



Re: execuando script ao logar

2007-02-23 Por tôpico hamacker

Acabei de testar no debian etch e sarge, e como teste acrescente
aum usuario comum no .bash_profile dele coloquei :
echo executando menu
exec ~/menu.sh (testei tambem exec /home/usuario/menu.sh)

Se tento o login onde o shell é /bin/sh  o script menu.sh não é carregado.
Se troco de volta para /bin/bash ele então é carregado.

/bin/sh  continua apontando para /bin/bash

No caso do etch é uma instalação limpinha :
apt-cache policy bash
bash:
 Instalado: 3.1dfsg-8
 Candidato: 3.1dfsg-8
 Tabela de versão:
*** 3.1dfsg-8 0
   500 http://linorg.usp.br etch/main Packages
   100 /var/lib/dpkg/status

man bash :
  If bash is invoked with the name sh, it  tries  to  mimic  the  startup
  behavior  of  historical  versions  of sh as closely as possible, while
  conforming to the POSIX standard as well.  When invoked as an  interac‐
  tive  login  shell, or a non-interactive shell with the --login option,
  it first attempts to read and execute commands  from  /etc/profile  and
  ~/.profile,  in  that  order. (...)

[]'s e sucesso.


Em 23/02/07, Bruno Schneider[EMAIL PROTECTED] escreveu:

On 2/22/07, Maxwillian Miorim wrote:

 On 2/22/07, hamacker wrote:
  Mas voltando ao tema do assunto, a partir de alguma atualização do
  debian, o bash ignora ~/.bash*  se for carregado por um link
  simbolico, portanto, /bin/sh não vai chamar ~/.bash* enquanto
  /bin/bash funcionará sem problemas.

 Eu não sabia disso, apesar de não usar os ~/.bash*, é
 interessante... Ajuda a explicar algumas coisas que não funcionam em
 alguns casos :D

Isso não parece correto. Hamacker, poderia citar uma referência?

Testei aqui com o bash 3.1.17 (chamado a partir de um link simbólico)
e ele interpretou o .bashrc. Acho que estás confundindo com o fato que
o bash não interpreta os .bash* quando chamado como sh.

--
Bruno de Oliveira Schneider
http://www.dcc.ufla.br/~bruno/




Re: execuando script ao logar

2007-02-22 Por tôpico hamacker

Quando voce cadastrou o usuário voce informou que iria usar bash ?
Ex: useradd fulano -s /bin/bash

Neste caso voce pode usar tanto o .bash_profile quanto o .bashrc, eu
prefiro o .bash_profile.

Se voce não especificou que iria usar o bash, provavelmente no ato do
login do usuario ele estará executando outro prompt (zsh, ash,...) que
por omissão não usam .bash*

[]'s e sucesso.



Re: execuando script ao logar

2007-02-22 Por tôpico Maxwillian Miorim

On 2/22/07, hamacker [EMAIL PROTECTED] wrote:

Neste caso voce pode usar tanto o .bash_profile quanto o .bashrc, eu
prefiro o .bash_profile.


Da man page do bash:

[ corte ]

When bash is invoked as an interactive login shell, or as a
non-interactive shell with the --login option, it first reads and
executes
  commands from the file /etc/profile, if that file exists.
After reading that file, it looks for ~/.bash_profile,  ~/.bash_login,
and
  ~/.profile, in that order, and reads and executes commands from
the first one that exists and is readable.  The --noprofile option may
  be used when the shell is started to inhibit this behavior.

  When a login shell exits, bash reads and executes commands from
the file ~/.bash_logout, if it exists.

  When an interactive shell that is not a login shell is started,
bash reads and executes commands from ~/.bashrc, if that file  exists.
  This  may  be  inhibited  by using the --norc option.  The
--rcfile file option will force bash to read and execute commands from
file
  instead of ~/.bashrc.


[ corte ]


Se voce não especificou que iria usar o bash, provavelmente no ato do
login do usuario ele estará executando outro prompt (zsh, ash,...) que
por omissão não usam .bash*

Na verdade ele vai pegar o /bin/sh, que por padrão é o bash através do
alternatives. A menos que ele tenha especificado um outro shell como
padrão.

Para aplicar à todos os usuários os arquivos são /etc/profile (o
Debian poderia ter um profile.d né gente :) e /etc/bash_bashrc.

Qualquer coisa man bash ;)

--
Maxwillian Miorim [EMAIL PROTECTED]

Moo... Are you happy now?



Re: execuando script ao logar

2007-02-22 Por tôpico hamacker

Neste caso, é interessante então não usar então o sh, porque senão ao
mudar o alternatives voce estará mudando para todos os usuários
configurados.

Eu penso da seguinte maneira, se tem necessidade de um usuario usar
bash então que crie o login setando 'bash', se um usuário vai ser
criado mas não usará shell então /bin/false e assim por diante. Sou
contra usar o 'default' do sistema, porque simplesmente isso pode
mudar no futuro e ninguem vai saber o 'porque' de não estar
funcionando.

Mas voltando ao tema do assunto, a partir de alguma atualização do
debian, o bash ignora ~/.bash*  se for carregado por um link
simbolico, portanto, /bin/sh não vai chamar ~/.bash* enquanto
/bin/bash funcionará sem problemas.

[]'s

2007/2/22, Maxwillian Miorim [EMAIL PROTECTED]:

Na verdade ele vai pegar o /bin/sh, que por padrão é o bash através do
alternatives. A menos que ele tenha especificado um outro shell como
padrão.




Re: execuando script ao logar

2007-02-22 Por tôpico Maxwillian Miorim

On 2/22/07, hamacker [EMAIL PROTECTED] wrote:

Neste caso, é interessante então não usar então o sh, porque senão ao
mudar o alternatives voce estará mudando para todos os usuários
configurados.

É sim, o sh no meu caso, é tratado como um shell padrão do sistema.
Como meus scripts são na maioria bash eu defino o bash como o
alternative do sh.


Eu penso da seguinte maneira, se tem necessidade de um usuario usar
bash então que crie o login setando 'bash', se um usuário vai ser
criado mas não usará shell então /bin/false e assim por diante. Sou
contra usar o 'default' do sistema, porque simplesmente isso pode
mudar no futuro e ninguem vai saber o 'porque' de não estar
funcionando.

Eu uso o rbash para a mairia dos meus usuários (mantém compatibilidade
com os meus scripts e ainda prende o pessoal na sua jaula :P), em
alguns casos mais especificos o tcsh ou o fish, manter vários usuários
sob um padrão ajuda, cabe ao administrador saber como e quando migrar
de um shell para outro.


Mas voltando ao tema do assunto, a partir de alguma atualização do
debian, o bash ignora ~/.bash*  se for carregado por um link
simbolico, portanto, /bin/sh não vai chamar ~/.bash* enquanto
/bin/bash funcionará sem problemas.

Eu não sabia disso, apesar de não usar os ~/.bash*, é
interessante... Ajuda a explicar algumas coisas que não funcionam em
alguns casos :D

--
Maxwillian Miorim [EMAIL PROTECTED]

Moo... Are you happy now?



execuando script ao logar

2007-02-21 Por tôpico Leandro Moreira

Caros,
Criei um script usando dialog e gostaria que o usuário o executasse ao 
logar e que ao sair ele fosse deslogado. Coloquei o script no /usr/bin 
dei a ele a premissão chmod +s e o coloquei dentro do .bash_profile, mas 
mesmo assim ele não é executado. Alguem pode me dar uma sugestao.


Att.

--
Leandro Moreira 
Linux Networking
Telefone: +55 (32) 9197-7909 
E-mail/MSN: [EMAIL PROTECTED]

www.leandromoreira.eti.br



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: execuando script ao logar

2007-02-21 Por tôpico Junior Polegato - Linux

Leandro Moreira escreveu:

Caros,
Criei um script usando dialog e gostaria que o usuário o executasse ao 
logar e que ao sair ele fosse deslogado. Coloquei o script no /usr/bin 
dei a ele a premissão chmod +s e o coloquei dentro do .bash_profile, 
mas mesmo assim ele não é executado. Alguem pode me dar uma sugestao.


Olá,

 Tente colocar no .bashrc, algumas versões de bash (ou 
instalações/variações) não executam o .bash_profile. Basta, depois de 
chamar o executável, dar o comando exit para ser desautenticado. Mas tem 
que cuidar dos tais CTRL+C, que podem interromper a operação dar o 
prompt ao usuário.
 Uma outra alternativa é em vez de chamar o bash depois de logar, 
chamar o programa que deseja. Isso pode ser alterado na última coluna em 
/etc/passwd.


--
Atenciosamente,

  Junior Polegato

  Um peregrino de problemas; Um pergaminho de soluções!
  Página Profissional: http://www.juniorpolegato.com.br


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Res: execuando script ao logar

2007-02-21 Por tôpico Carlos Augusto Beltrame
desculpe pessoal nao tinha visto essa pergunta antes, mas entao, aproveitando o 
ensejo, vi num manual do julio neves, mas axo q entendi completamente errado, 
veja o trecho retirado do site dele www.julioneves.com

Quando eu disse que o último campo do /etc/passwd informa ao sistema qual é o 
Shell
que o usuário vai receber ao se logar, é para ser interpretado ao
pé-da-letra, isto é, se neste campo do seu registro estiver prog, a pessoa ao 
acessar o sistema receberá a tela de execução do programa prog
e ao terminar a sua execução ganhará imediatamente um logout. Imagine o
quanto se pode incrementar a segurança com este simples artifício.
 

 tem algo relacionado com nossa pergunta?

.''`.   Yours Trully
: :'  :  Carlos Beltrame
`. `'`   Eletrical Engineer
  `- IEEE #80472763
Linux User #442225
UNESP - Câmpus de Ilha Solteira
http://www.ieee.org/unesp-ilha
http://www.ldc.feis.unesp.br


- Mensagem original 
De: Leandro Moreira [EMAIL PROTECTED]
Para: Debian debian-user-portuguese@lists.debian.org
Enviadas: Quarta-feira, 21 de Fevereiro de 2007 17:48:23
Assunto: execuando script ao logar

Caros,
Criei um script usando dialog e gostaria que o usuário o executasse ao 
logar e que ao sair ele fosse deslogado. Coloquei o script no /usr/bin 
dei a ele a premissão chmod +s e o coloquei dentro do .bash_profile, mas 
mesmo assim ele não é executado. Alguem pode me dar uma sugestao.

Att.

-- 
Leandro Moreira 
Linux Networking
Telefone: +55 (32) 9197-7909 
E-mail/MSN: [EMAIL PROTECTED]
www.leandromoreira.eti.br



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]







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

Re: execuando script ao logar

2007-02-21 Por tôpico Junior Polegato - Linux

Quoting Leandro Moreira [EMAIL PROTECTED]:

Junior,
Valeu pelas dicas consegui resolver o problema era erro no usuário,  
removi e o recriei e o problema foi resolvido, mas mesmo assim  
gostaria que se possível me enviase como ficaria colocar o script  
pra ser executado no passwd.

Junior Polegato - Linux escreveu:

Leandro Moreira escreveu:

Caros,
Criei um script usando dialog e gostaria que o usuário o  
executasse ao logar e que ao sair ele fosse deslogado. Coloquei o  
script no /usr/bin dei a ele a premissão chmod +s e o coloquei  
dentro do .bash_profile, mas mesmo assim ele não é executado.  
Alguem pode me dar uma sugestao.

Olá,
Tente colocar no .bashrc, algumas versões de bash (ou  
instalações/variações) não executam o .bash_profile. Basta, depois  
de chamar o executável, dar o comando exit para ser desautenticado.  
Mas tem que cuidar dos tais CTRL+C, que podem interromper a  
operação dar o prompt ao usuário.
Uma outra alternativa é em vez de chamar o bash depois de logar,  
chamar o programa que deseja. Isso pode ser alterado na última  
coluna em /etc/passwd.


Olá Leandro e outros interessados.

  Bom, teoricamente deveria funcionar a contento, mas como não está  
funcionando e tendo problemas com criação de usuário, nada que uma  
taça de um bom vinho não resolva, podemos combinar e fica por sua  
conta! ;) :P


  Vamos a um passo-a-passo:

- Se já tem um usuáro criado (vou chamar de junior aqui para  
exemplificar e estou num CL10) e pode removê-lo com todos seus  
arquivos e grupo específico, mãos a obra:

# userdel -r junior

- Vamos criar o usuário que vai usar um programa específico ao logar,  
que no caso usei chamar o programa mc, que está me /usr/bin/mc:

# useradd -m -s /usr/bin/mc junior
# passwd junior
Changing password for user junior.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

- Agora vamos verificar nossa criação:
# grep junior /etc/passwd
junior:x:503:504::/home/junior:/usr/bin/mc
# grep junior /etc/group
junior:x:504:
# grep teste /etc/shadow
junior:$1$liUxvJWD$gTBLFjPpNCkpMqohxdx8r/:13566:0:9:7:::
# ls -al /home/junior
/home/junior:
total 28K
drwx--  2 teste teste 4,0K 2007-02-22 03:03 ./
drwxr-xr-x  7 root  root  4,0K 2007-02-22 03:03 ../
-rw-r--r--  1 teste teste 3,3K 2007-02-22 03:03 .Xdefaults
-rw-r--r--  1 teste teste   24 2007-02-22 03:03 .bash_logout
-rw-r--r--  1 teste teste  230 2007-02-22 03:03 .bash_profile
-rw-r--r--  1 teste teste  124 2007-02-22 03:03 .bashrc
-rw-r--r--  1 teste teste  593 2007-02-22 03:03 .xserverrc

- Agora ao autenticar com o usuário junior, caio direto no programa mc  
e ao sair com F10 - Sim/Yes volta a tela inicial de autenticação.


- Agora, como se fosse um usuário existente, vou editar o /etc/passwd  
e trocar o /usr/bin/mc por /bin/bash

 Beleza, tenho o prompt do bash ao me autenticar e saio com exit

- Agora vou voltar para o mc
 Beleza, agora tenho o mc ao me autenticar

Caso queria controlar os sinais recebidos no seu programa, dependendo  
a linguagem de programação, analise quais os sinais recebido via  
teclado ou comando podem interromper seu programa e controle isso. No  
caso de C, procure pelas funções de signal; e no caso de Shell Script,  
procure pelp comando interno trap.


Fora isso, somente passando o erro e descrevendo com detalhes seus  
problemas para podermos ajudar mais precisamente.


Abraços.

--
Atenciosamente,

Junior Polegato

Um peregrino de problemas; Um pergaminho de soluções!
Página Profissional: http://www.juniorpolegato.com.br