Re: execuando script ao logar
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
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
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
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
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
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
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
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
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
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
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