Executando o ipmitool como um usuário não root

5

Eu quero monitorar alguns dados relacionados ao hardware em um servidor CentOS6 sem cabeçalho. Mais especificamente, coisas como voltagens, velocidades dos ventiladores, dados térmicos ...

Desde que o servidor é sem cabeça, a melhor maneira que eu encontrei para fazer isso é através de um script php que formatar os resultados de ipmitool de uma maneira legal.

É claro que o usuário do webserver não é root, isso seria ruim. Infelizmente, parece que um usuário não-root não tem direitos para acessar /dev/ipmi* , o que também faz sentido.

A execução de ipmitool -U "someUser" -P "somePassword" sdr fornece as leituras esperadas como raiz, mas retorna

Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
Get Device ID command failed
Unable to open SDR for reading

quando estou logado como o servidor web.

Eu procurei um pouco aqui e ali, e estava interessado em devfs.rules , mas parece que ele não está presente no CentOS6, e eu não estou familiarizado com a montagem de coisas relacionadas a /dev de qualquer maneira.

Alguém poderia me apontar na direção certa?

    
por Silver Quettier 08.02.2012 / 21:22

1 resposta

6

/dev/ipmi* é geralmente restrito ao root apenas como você encontrou. Suas opções para executar ipmitool como usuário não-root são (em ordem aproximada de minha preferência pessoal):

  1. Use sudo (você pode criar uma entrada em sudoers especificamente para pessoas que devem ter permissão para executar apenas ipmitool se você também não quiser dar acesso irrestrito ao sudo)

  2. Modifique suas regras udev para que o dispositivo seja acessado por outro usuário / grupo (não sei onde as regras do udev são mantidas no CentOS 6, mas procure em / etc por algo que se encaixa na conta) . Esta é a mesma abordagem da edição de devfs.rules - A documentação do CentOS o levará na direção certa e esta página (ou algum criativo googling) irá ajudá-lo com a sintaxe do udev. (Eu daria a você ponteiros, mas eu sou pouco familiarizado comigo mesmo: x)

  3. Conecte-se à interface IPMI pela rede (se sua interface IPMI oferecer suporte a isso).
    Isso pode exigir a gravação de uma interface de rede e cabo crossover ou a conexão da placa IPMI à sua rede, e é por isso que ela está tão baixa na lista.

  4. Crie ipmitool setuid-root.
    (Sim. Não faça isso. Geralmente é uma má ideia e um péssimo conselho - finja que não mencionei isso.)

por 08.02.2012 / 21:45