Permissao de comando para todo usuario [RESOLVIDO]

1. Permissao de comando para todo usuario [RESOLVIDO]

Cleiton Rafael Bueno de Oliveira
cleitonbueno

(usa Debian)

Enviado em 18/01/2011 - 12:39h

Ola a todos está é a minha primeira dúvida e é sobre o Shell Script, fiz alguns scripts para rede e facilitar a vida do pessoal do suporte e esta sendo eficiente, fiz esta semana um super básico e eficiente para eles, pois precisava saber se tal IP esta ou não no ar, devido a Firewall e proteções as vezes o IP não responde a requisições ICMP ping ae recorri em fazer um script com arping, perfeito, segue um trecho do script para quem for curioso.


#!/bin/bash

#++++++++++++++++++++++++++++++++++++++++++++
# Script Escrito por Cleiton Bueno
#
# Data: 13/01/2011
# Arping para responde de IP
# protegido por Firewall
#++++++++++++++++++++++++++++++++++++++++++++

# Abaixo -i INTERFACE $1, pois já informa o IP
# a frente do comando no terminal

arping -i eth1 $1




Bom essa é a lógica, irei trabalhar com expressões regulares emcima exibindo apenas ONLINE e OFFLINE para o suporte, mas o problema que estou tendo é o seguinte o arquivo esta com as permissões corretas, os usuarios conseguem "abrir" o programa, pois já coloquei em /usr/local/bin, um caminho que coloco os scripts e esta no PATH, só que arping só root pode executar assim como arp e demais, e eu não queria colocar /usr/sbin no PATH, e queria saber se é possivel dar permissao para todos usuarios de apenas 1 comando no caso arping para todos executarem?

Att,


  


2. Re: Permissao de comando para todo usuario [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/01/2011 - 00:12h

experimente criar um arquivo shell assim:

#!/bin/bash
/usr/sbin/arping (comandos etc)

e salva, da permissão e chama ele de dentro do seu script principal assim talvez

sudo /usr/local/bin/scrip-tal

veja se rola, nao sei se entendi bem...


3. Re: Permissao de comando para todo usuario [RESOLVIDO]

Cleiton Rafael Bueno de Oliveira
cleitonbueno

(usa Debian)

Enviado em 19/01/2011 - 09:56h

Obrigado pela tentativa de ajuda, quando vi até pensei que daria certo mas não deu, até depois disso que você mandou tentei umas jogadas com sudo e não deu certo, o que eu quero é poder usar o arping em qualquer ususario sendo que só funciona como root, agora se eu chamar o script com sudo funciona normal, mas não posso deixar senha de sudo assim.

Será que não tem como adicionar uma excessão no arping para outros usuarios algo assim?


4. Re: Permissao de comando para todo usuario [RESOLVIDO]

José Mário
miura 787

(usa Ubuntu)

Enviado em 19/01/2011 - 10:56h

Já tentou mudar a permissão do arping com chmod?

sudo chmod o+x /usr/sbin/arping


5. SUID

Gustavo Hendrigo Marcon
hendrigo

(usa Suse)

Enviado em 19/01/2011 - 11:18h

Você pode tentar utilizar o suid, um arquivo com suid, é executado com as permissões do dono do arquivo, neste caso o root, é assim que é possivel utilizar o passwd por exemplo.

Veja http://www.vivaolinux.com.br/artigo/Linux-Permissoes-de-acesso-especiais?pagina=3


6. Re: Permissao de comando para todo usuario [RESOLVIDO]

Cleiton Rafael Bueno de Oliveira
cleitonbueno

(usa Debian)

Enviado em 19/01/2011 - 13:37h

Mira tentei isso tambem
Hendrigo tinha ligo algo parecido com isso usando +s do chmod e o setuid mas não deu certo.


Consegui resultados fazendo o seguinte

Antes do arping eu coloquei o seguinte:

sudo arping -i eth1 $1


Ele funciona mas preciso informar a senha, como queria algo automatico, tem como informar a senha no proprio Shell Script?

Porque ae eu daria permissao total para o criador, e o grupo e other seria apenas +x, ae ninguem irei ver a senha ou algo assim

Script1: acesso.sh
########################################
#!/bin/bash
echo SENHA
########################################

Script a ser executado:
########################################
#!/bin/bash

receberacesso = /usr/local/bin/acesso.sh

sudo arping -i eth1 $1
echo $receberacesso > /dev/null
########################################

No Script a ser executado eu coloquei um echo abaixo da variavel receberacesso e a senha é impressa correta mas não consigo fazer com que ela informe ao sudo a senha ele não pega, alguma ajuda de como fazer isso?




OBS: Essa jogada do sudo achei a melhor solução porque não mexi em permissoes do arping, e apenas permissão do Scritp o criador tem 7(total) ja Grupo e Outros Usuarios apenas execução, como tem um $1 no script então precisei dar um (leitura) para Outros Usuarios e por isso criei outro script só para senha e esse sim chmod 711, (total para o criando, execussão para o grupo e outros usuarios). Sendo assim ele não ira abrir o script da senha e caso ele crie uma variavel no script principal não tem permissao para salvar.



Algum sugestão sobre o sudo?





7. EXPECT

Gustavo Hendrigo Marcon
hendrigo

(usa Suse)

Enviado em 19/01/2011 - 15:21h

Eu já fiz algo parecido com o ssh, com o expect

ex: http://cialinux.wordpress.com/2009/06/26/script-expect-para-acesso-ssh-automatico/


8. RESOLVIDO

Cleiton Rafael Bueno de Oliveira
cleitonbueno

(usa Debian)

Enviado em 20/01/2011 - 13:45h

Depois de muita procura conversei com um colega que conheci a pouco tempo que até é membro daqui do forun o Marcelo Tchello e a resolução foi a seguinte:

deixar o comando arping dentro do script da seguinte maneira

sudo arping -i eth1 $1


e editar o arquivo /etc/sudoers, especificar assim

USUARIO ALL=NOPASSWD:/usr/sbin/arp,\
/usr/local/bin


Ou seja o sudo continua com senha mas eu coloco o usuario que ira logar ali em USUARIO e deixo para ele o sudo sem senha e especifico na frente de NOPASSWD:os diretorios que ele terá privilégio de root.

E está funcionando 100%, quem tiver problema assim com scirpt tá ae a solução.


Obrigado a todos que tentaram solucionar e até mais.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts