Eu tenho um servidor radiusd em uma máquina virtual, ele já está configurado e funcionando quando eu emito o modo de depuração "radiusd -X". Meu único problema é que quando eu tento executá-lo como um serviço, ele falha ...
Aqui está o erro que recebi nos registros,
"Sáb 28 de junho, 17:51:12 2014: Erro: falha na ligação à interface eth1: operação não permitida Sab 28 jun 17:51:12 2014: Erro: /etc/raddb/radiusd.conf[240]: Ligação de erro à porta para a porta 0.0.0.0 1812 "
Na verdade, diz que a operação não é permitida, mas eu não sabia que o Linux poderia proibir a ligação na interface de qualquer forma ... Além disso, a porta (1812) não é uma porta privilegiada. Minha máquina está executando o Scientific Linux 6.5 (fork do RHEL). Eu já tentei desabilitar o selinux, mas isso não funcionou. De qualquer forma eu também desabilitei o switch de usuário em radiusd.conf para que o radiusd fosse executado como root, mas eu ainda tenho essa operação não permitida erro. Isso é estranho novamente, só prova que o serviço não roda radiusd como root, mas agora "radiusd -X" e ps faux me mostra que radiusd é executado como root. Por que o simples fato de eu usar o arquivo de serviço faria com que ele NÃO fosse executado como root?
Aqui está a função de início do arquivo de serviço.
start() {
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
daemon --pidfile $pidfile $exec -d $config_dir
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
Qualquer ajuda seria muito apreciada :) Obrigado.
EDIT: Eu meio que resolvi meu problema reescrevendo arquivos de serviços de maneira mínima, mas essa ainda não é a melhor abordagem ...
start() {
echo "Starting radiusd"
radiusd
}
stop() {
echo "Stopping radiusd"
killall radiusd
echo "done"
}
Tags linux freeradius