Ubuntu环境下FreeRadius对接Active Directory认证时执行ntlm_auth提示权限拒绝的问题求助
你好!我看到你作为Linux新手,在Ubuntu上配置FreeRadius对接AD认证时遇到了ntlm_auth权限拒绝的问题,这种权限类的问题确实容易让人摸不着头脑,我来给你几个实用的排查和解决方向:
首先要明确一个关键点:/etc/freeradius/3.0/mods-enabled/ntlm_auth其实是个软链接,它指向的实际可执行文件通常是/usr/bin/ntlm_auth,你可以先执行以下命令确认路径和基础权限是否正常:
ls -l /etc/freeradius/3.0/mods-enabled/ntlm_auth ls -l /usr/bin/ntlm_auth
正常情况下,/usr/bin/ntlm_auth的权限位应该至少是-rwxr-xr-x,保证所有人都有执行权限。
接下来,核心问题大概率是FreeRadius运行的默认用户freerad没有足够权限执行ntlm_auth,或者被系统安全机制限制了,可以按以下步骤逐步排查:
先切换到freerad用户手动测试ntlm_auth,看是否能正常运行:
sudo su - freerad -s /bin/bash ntlm_auth --request-nt-key --username=testing --domain=你的AD域名如果这里也提示权限拒绝,要么是freerad用户没有执行该命令的权限,要么是它无法读取Samba配置文件
/etc/samba/smb.conf,你需要确保/etc/samba/smb.conf对freerad用户开放读权限。检查Ubuntu默认的AppArmor限制:AppArmor经常会阻止服务进程执行某些外部命令,你可以临时切换到投诉模式测试:
sudo aa-complain /etc/apparmor.d/usr.sbin.radiusd如果测试成功了,就需要修改AppArmor配置文件,添加允许freerad执行ntlm_auth的规则:编辑
/etc/apparmor.d/usr.sbin.radiusd,在合适的位置加入:/usr/bin/ntlm_auth ix,然后重新加载AppArmor规则:
sudo systemctl reload apparmor检查mschap模块的配置正确性:打开
/etc/freeradius/3.0/mods-enabled/mschap,确认ntlm_auth的调用路径是实际的/usr/bin/ntlm_auth而非软链接路径,正常的配置段类似:ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key --username=%{mschap:User-Name} --domain=%{mschap:NT-Domain} --workstation=%{mschap:Client-IP-Address}"
另外,你提到手动修改权限后出现了截断的错误,可能是改权限时破坏了文件的默认所有者,建议先把ntlm_auth的权限恢复默认:
sudo chmod 755 /usr/bin/ntlm_auth sudo chown root:root /usr/bin/ntlm_auth
先试试这些方法,应该能解决大部分权限相关的问题。
备注:内容来源于stack exchange,提问作者Jonathan Cohen




