Had an odd problem last night, dnsmasq stopped giving out addresses via dhcp - its never done this before, and only recently updated to 21.02.0.
The only error given in the log is
daemon.err dnsmasq: failed to load names from /tmp/hosts/dhcp.cfg01411c: Permission denied where that file is rw by root only, and it exists.
The only other error is the very strange
kern.warn kernel: [ 5626.058224] enter showtime, cell rate: 0 - 2094, 1 - 2094, xdata addr: 0xa1cf0000 - a google search don't show this as connected. Its an error that only happens on xrx200 devices, and quite often with plus.net - both of which apply to me.
Anyway strange with with dnsmasq, is after a few hours it settled down, and started giving out ip numbers. The ADSL line kept on going up and down over night.
Anyone any ideas?
It shouldn't be root-only.
Dnsmasq is supposed to run under a restricted user.
You haven't altered the init script, have you?
Now that dhcp is working again. The file is still rw for root only, and as its in /tmp its a file that is created on the fly - and by the date on the file, it must been soon after poweron. No I've changed no scripts - only removed /etc/modules.d/ipt-nat - as I do firewall via nftables.
Do you know which script creates the file?
The exact config location and processing method depends on your firmware version and settings:
It looks like this for me:
# ls -a -l /tmp/hosts
drwxr-xr-x 2 root root 80 Sep 11 07:32 .
drwxrwxrwt 21 root root 600 Sep 11 09:35 ..
-rw-r--r-- 1 root root 51 Sep 10 16:28 dhcp.dnsmasq
-rw-r--r-- 1 root root 0 Sep 11 07:32 odhcpd
# ps | grep -e [d]nsmasq -e [o]dhcpd
2097 dnsmasq 2316 S /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf.dnsmasq -k -x /var/run/dnsmasq/dnsmasq.dnsmasq.pid
2348 root 1068 S /usr/sbin/odhcpd
# ubus call system board
"system": "Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz",
"model": "QEMU Standard PC (i440FX + PIIX, 1996)",
"description": "OpenWrt 21.02.0 r16279-5cc0535800"