无法将 freeradius 作为服务运行

无法将 freeradius 作为服务运行

我在虚拟机上有一个 radiusd 服务器,当我发出“radiusd -X”(又称调试模式)时,它已经配置完毕并开始工作。我唯一的问题是,当我尝试将其作为服务运行时,它会失败...

这是我在日志中收到的错误,

“2014 年 6 月 28 日星期六 17:51:12:错误:无法绑定到接口 eth1:操作不允许 2014 年 6 月 28 日星期六 17:51:12:错误:/etc/raddb/radiusd.conf[240]:绑定到端口 0.0.0.0 1812 时出错”

确实,它说该操作是不允许的,但我不知道 Linux 可以禁止任何接口上的绑定……此外,端口 (1812) 不是特权端口。我的机器正在运行 Scientific Linux 6.5(RHEL fork)。我已经尝试禁用 selinux,但没有奏效。无论如何,我还禁用了 radiusd.conf 中的用户开关,因此 radiusd 以 root 身份运行,但我仍然有操作不允许的错误。这又很奇怪了,它只能证明服务没有以 root 身份运行 radiusd,但现在“radiusd -X”和 ps faux 显示 radiusd 以 root 身份运行。为什么我使用服务文件这一简单事实会导致它不能以 root 身份运行?

这是服务文件的启动函数。

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
 }

如能提供任何帮助我将非常感激:) 谢谢。

编辑:我通过以最小的方式重写服务文件解决了我的问题,但这仍然不是最好的方法......

  start() {
    echo "Starting radiusd"
    radiusd
    }

  stop() {
         echo "Stopping radiusd"
         killall radiusd
         echo "done"
          }

相关内容