Executar comando/serviço no Logon do usuário. [RESOLVIDO]

1. Executar comando/serviço no Logon do usuário. [RESOLVIDO]

Jackson
jckmsantos

(usa Ubuntu)

Enviado em 01/03/2013 - 15:30h

Fala galera.

Como faço para executar um comando ou iniciar um serviço quando um usuário fizer o logon no computador?!

Para ficar mais claro minha situação.

Tenho um Servidor com o OcsInventory instalado para começar a fazer o inventário de meus computadores, quando instalo o cliente nos desktops, logo após a instalação ele envia ao servidor o inventário da maquina, e depois não envia mais.

Não quero colocar isso na Crontab, pois não quero receber de hora em hora, ou diariamente o inventário.

Eu quero receber quando o usuário fizer o logon na maquina. Ou seja, cada vez que um usuário logar na maquina, o comando " ocsinventory-agent" é acionado como root, e o servidor recebe as informaçãoes.
Aqui em nossa rede o login é autenticado por um servidor LDAP, e um único computador pode ser acessado por diversos usuários ao longo do tempo.

Teria que inserir um Script... ou será que no /etc/skel/ eu poderia criar alguma coisa que me ajude neste sentido...??

Já testei inserindo o comando no rc.local e o servidor recebe a informação quando a maquina é ligada, mas o inventário vai sem o nome de usuário, pois a maquina foi ligada mas ainda não foi Logada.

Alguém?!!




  


2. MELHOR RESPOSTA

Wellington Felix
wellingtonfelix

(usa Outra)

Enviado em 04/03/2013 - 15:30h

Fiz aqui:

ALL ALL=NOPASSWD:/sbin/shutdown

Depois com um usuário comum rodei:

shutdown -r now

Funcionou, tente aí.

3. Re: Executar comando/serviço no Logon do usuário. [RESOLVIDO]

Wellington Felix
wellingtonfelix

(usa Outra)

Enviado em 01/03/2013 - 16:28h

Veja se te ajuda:

http://bash.cyberciti.biz/guide//etc/profile

Basta colocar o comando/script que deve ser executado no logon de todos os usuários. :)


4. Re: Executar comando/serviço no Logon do usuário. [RESOLVIDO]

Jackson
jckmsantos

(usa Ubuntu)

Enviado em 01/03/2013 - 17:20h

wellingtonfelix escreveu:

Veja se te ajuda:

http://bash.cyberciti.biz/guide//etc/profile

Basta colocar o comando/script que deve ser executado no logon de todos os usuários. :)


Olá Wellington obrigado pela resposta.

Mas como eu disse no post, os usuários farão login com autenticação no LDAP. Cada usuário que faz login é gerado uma nova Home pra ele.
Não sabemos a rotatividade de cada setor, portanto não temos usuários fixos por maquina.

Preciso rodar o serviço automaticamente no momento em que qualquer usuário que logar na máquina, ele execute e envie ao servidor.


5. Re: Executar comando/serviço no Logon do usuário. [RESOLVIDO]

Wellington Felix
wellingtonfelix

(usa Outra)

Enviado em 01/03/2013 - 21:56h

jckmsantos escreveu:

wellingtonfelix escreveu:

Veja se te ajuda:

http://bash.cyberciti.biz/guide//etc/profile

Basta colocar o comando/script que deve ser executado no logon de todos os usuários. :)


Olá Wellington obrigado pela resposta.

Mas como eu disse no post, os usuários farão login com autenticação no LDAP. Cada usuário que faz login é gerado uma nova Home pra ele.
Não sabemos a rotatividade de cada setor, portanto não temos usuários fixos por maquina.

Preciso rodar o serviço automaticamente no momento em que qualquer usuário que logar na máquina, ele execute e envie ao servidor.



@jckmsantos, exato, o objetivo do /etc/profile é exatamente este.

Na descrição da página que te mandei diz:

/etc/profile contains Linux system wide environment and startup programs. It is used by all users


Este link explica melhor como funciona:

http://pt.wikibooks.org/wiki/Guia_do_Linux/Iniciante+Intermedi%C3%A1rio/Personaliza%C3%A7%C3%A3o_do_...


6. Re: Executar comando/serviço no Logon do usuário. [RESOLVIDO]

Jackson
jckmsantos

(usa Ubuntu)

Enviado em 04/03/2013 - 12:09h

wellingtonfelix escreveu:

jckmsantos escreveu:

wellingtonfelix escreveu:

Veja se te ajuda:

http://bash.cyberciti.biz/guide//etc/profile

Basta colocar o comando/script que deve ser executado no logon de todos os usuários. :)


Olá Wellington obrigado pela resposta.

Mas como eu disse no post, os usuários farão login com autenticação no LDAP. Cada usuário que faz login é gerado uma nova Home pra ele.
Não sabemos a rotatividade de cada setor, portanto não temos usuários fixos por maquina.

Preciso rodar o serviço automaticamente no momento em que qualquer usuário que logar na máquina, ele execute e envie ao servidor.



@jckmsantos, exato, o objetivo do /etc/profile é exatamente este.

Na descrição da página que te mandei diz:

/etc/profile contains Linux system wide environment and startup programs. It is used by all users


Este link explica melhor como funciona:

http://pt.wikibooks.org/wiki/Guia_do_Linux/Iniciante+Intermedi%C3%A1rio/Personaliza%C3%A7%C3%A3o_do_...


@wellingtonfelix

Então, fiz alguns testes aqui inserindo o comando no /etc/profile...
mas ai começaram a aparecer alguns erros.
Quando eu logo na maquina com o usuário root, ele lê o /etc/profile e executa o comando da forma como eu preciso.
Porém quando logo com outro usuário, o comando não é executado.
Como faço para dar permissão de Root para o comando fazendo com que ele seja executado por qualquer usuário sem precisar da senha?!

Tentei também alterar as permissões em /etc/sudoers, mas não sei como colocar para que qualquer usuário execute.


7. Re: Executar comando/serviço no Logon do usuário. [RESOLVIDO]

8. Re: Executar comando/serviço no Logon do usuário. [RESOLVIDO]

Jackson
jckmsantos

(usa Ubuntu)

Enviado em 04/03/2013 - 15:18h



Ola novamente wellingtonfelix...
Então, já havia pesquisado sobre essas permissões do /sudoers...

Veja este exemplo:
rodrigo ALL=NOPASSWD:/sbin/shutdown

É exatamente isso que preciso, mas ao invés do nome de um usuário, preciso que seja qualquer usuário que logar. Visto que aqui teremos o login das maquinas sendo autenticado por LDAP, e pode haver uma grande rotatividade de usuários por maquina.
O que eu poderia colocar no lugar do nome do usuário?! Pra que ele permita qualquer usuário executar o comando...


9. Re: Executar comando/serviço no Logon do usuário. [RESOLVIDO]

Jackson
jckmsantos

(usa Ubuntu)

Enviado em 04/03/2013 - 16:09h

wellingtonfelix escreveu:

Fiz aqui:

ALL ALL=NOPASSWD:/sbin/shutdown

Depois com um usuário comum rodei:

shutdown -r now

Funcionou, tente aí.


Inseri a linha conforme você falou, e quando executo ela como um usuário que não é root ele gera o seguinte erro:


teste@ubuntu:/etc/ocsinventory$ ocsinventory-agent
Config: Failed to open /etc/ocsinventory/ocsinventory-agent.cfg
[info] You should run this program as super-user.
[error] Failed to create /var/lib/ocsinventory-agent/http:__ocsinventory-ng_ocsinventory directory: Permissão negada

O problema é que eu tento das as permissões e mesmo assim não funciona...


10. Re: Executar comando/serviço no Logon do usuário. [RESOLVIDO]

Wellington Felix
wellingtonfelix

(usa Outra)

Enviado em 04/03/2013 - 16:11h

jckmsantos escreveu:

wellingtonfelix escreveu:

Fiz aqui:

ALL ALL=NOPASSWD:/sbin/shutdown

Depois com um usuário comum rodei:

shutdown -r now

Funcionou, tente aí.


Inseri a linha conforme você falou, e quando executo ela como um usuário que não é root ele gera o seguinte erro:


teste@ubuntu:/etc/ocsinventory$ ocsinventory-agent
Config: Failed to open /etc/ocsinventory/ocsinventory-agent.cfg
[info] You should run this program as super-user.
[error] Failed to create /var/lib/ocsinventory-agent/http:__ocsinventory-ng_ocsinventory directory: Permissão negada

O problema é que eu tento das as permissões e mesmo assim não funciona...


Bacana, teste com "sudo" na frente do comando:

sudo ocsinventory-agent 


Me esqueci deste detalhe muito importante. :)


11. Re: Executar comando/serviço no Logon do usuário. [RESOLVIDO]

Jackson
jckmsantos

(usa Ubuntu)

Enviado em 04/03/2013 - 16:44h

wellingtonfelix escreveu:

jckmsantos escreveu:

wellingtonfelix escreveu:

Fiz aqui:

ALL ALL=NOPASSWD:/sbin/shutdown

Depois com um usuário comum rodei:

shutdown -r now

Funcionou, tente aí.


Inseri a linha conforme você falou, e quando executo ela como um usuário que não é root ele gera o seguinte erro:


teste@ubuntu:/etc/ocsinventory$ ocsinventory-agent
Config: Failed to open /etc/ocsinventory/ocsinventory-agent.cfg
[info] You should run this program as super-user.
[error] Failed to create /var/lib/ocsinventory-agent/http:__ocsinventory-ng_ocsinventory directory: Permissão negada

O problema é que eu tento das as permissões e mesmo assim não funciona...


Bacana, teste com "sudo" na frente do comando:

sudo ocsinventory-agent 


Me esqueci deste detalhe muito importante. :)


Ae Wellington!
Funcionou aqui, mas ainda não foi o ideal.
Inseri a linha la no /etc/sudoers e depois tambem coloquei no /etc/profile para que seja executado no momento do login.

Porém, ele funcionou quando eu crio um usuário local na maquina... mas quando faço o login autenticado pelo LDAP ele pede a senha.
Pelo que entendi, quando logo por LDAP ele não lê o arquivo /etc/sudoers.
Alguma outra idéia ai pra me ajudar?


12. Re: Executar comando/serviço no Logon do usuário. [RESOLVIDO]

Wellington Felix
wellingtonfelix

(usa Outra)

Enviado em 04/03/2013 - 17:00h

@jckmsantos, infelizmente não consigo reproduzir um ambiente similar ao seu para realizar testes agora.

Fiz uma pesquisa e encontrei algo que pode te ajudar. Os caras usam um Active Directory, mas creio que o princípio seja o mesmo.

Veja o que eles fizeram:


1 Answer activeoldestvotes
up vote
2
down vote
accepted
Per Hadyman5's comment, I ran the following:

id MYDOMAIN\\djsumdog
...and saw that my group was actually MYDOMAIN\linuxadmins, all lower case. I then added the following to my sudo configuration:

%MYDOMAIN\\linuxadmins ALL=(ALL) ALL
And sudo works fine now with the users in that group.

Fonte: http://serverfault.com/questions/306127/having-users-su-sudo-in-linux-based-on-active-directory-grou...


Pelo que deu pra entender, você é obrigado a informar um grupo após informar o nome do domínio. Veja se o "ALL" funciona nesse caso. Se não funcionar, estude a possibilidade de criar um grupo em seu LDAP para todos os usuários




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts