Por que o hd-idle precisa do sudo para rodar em rc.local?

6

Eu adicionei um comando que executa "hd-idle". Parece que precisa ser executado como root, caso contrário ele não gira as unidades conforme instruído. O comportamento parece ser o mesmo quando executado manualmente ou via rc.local. O hd-idle foi compilado com make install em vez de ser instalado com o apt-get, se for importante.

De outra pergunta neste site, sei que rc.local é executado como root, então por que eu ainda preciso adicionar sudo para que meu hd-idle seja executado?

Últimas duas linhas de rc.local:

sudo hd-idle -i 300

exit 0;

O rc.local acima funciona como esperado e os discos rígidos entram em modo de espera após 300 segundos. Se eu remover "sudo" e reiniciar os discos rígidos, nunca desative.

    
por DominicM 10.10.2014 / 23:56

1 resposta

1

hd-idle requer que o root funcione com os arquivos em / proc / diskstats  porque / proc / e / dev / possuído pelo root.

Eu não aconselharia alterar a propriedade, mas talvez você possa adicionar sua conta de usuário ao grupo de discagem.

$sudo usermod -a -G dialout <user-name>

Então você pode tentar fazer coisas como acessar hardware

Você também pode tentar alterar as permissões do grupo para / proc / diskstats para incluir o grupo de discagem. (Eu não estou aconselhando isso, mas você poderia tentar)

Acho que alguns dos recursos de log gravam em / var / log / hd-idle que também é de propriedade do root.

Acho que você poderia modificar a fonte e adicionar um usuário ao grupo de diaout para que esse software funcione como um usuário não explicitamente raiz, mas estou recomendando cautela.

Resposta obtida do código-fonte hd-ocioso.

    
por j0h 21.01.2015 / 15:30