我有一个freeradius
服务器设置与谷歌authenticator
,以提供基本的多因素设置。
当我以 root 身份在调试模式下运行radiusd
时,一切正常。 如果我将其作为服务启动,登录将失败,并且在处理消息时会记录此消息:
radiusd(pam_google_authenticator([1115]:无法读取"/home/user@domain.com/.google_authenticator"的"user@domain.com">
我认为这一定是一个权限问题,因为它在以root
运行时工作正常。
我真的不想为每个用户编辑每个秘密文件的权限。
我试过指定根
/etc/raddb/radiusd.conf
用户 = 根组 = 根
但除非以 root 身份从命令行运行,否则服务仍然失败。 有没有人对这个难题有一个很好的优雅解决方案?
我认为您应该查看您的 systemd 服务文件以获取radiusd
。它可能看起来像这样:
https://github.com/ipfire/ipfire-3.x/blob/master/freeradius/systemd/freeradius.service
如果需要,您可以在.service
文件的[Service]
部分中添加User=
和Group=
。 看
https://unix.stackexchange.com/questions/347358/how-to-change-service-user-in-centos-7
和
https://serverfault.com/questions/806617/configuring-systemd-service-to-run-with-root-access
最好将.service
文件的内容放在您的帖子中以供radiusd
。