The DNS resolution provided on the local machine via
/etc/hosts isn’t updatable
by a user account, which makes the following use-case a problem without
root access :
DNS can be used as a poor-man’s microservice resolution system, whereby a given microservice name can be switched to point from a local development machine to a remote testing machine, to a production machine purely (and immediately) by adjusting DNS entries.
Cleanest way didn’t pan out…
One solution considered was to install a local DNS server. However, while the
obvious choice (
dnsmasq) can make use of one or more
--addn-hosts files and
--hostsdir directories for updated files - the addresses there are
cumulative - so that if an address is flipped from one IP to another and back, both
IPs will be returned in a round-robin fashion. To reload the configuration requires a
that a regular user cannot (?) issue. This eliminated this almost-clean route.
At the end of a lengthy internal debate, the cave-in approach was chosen : Change the mode of
dnsmasq group (or another suitable one on your machine) to have
and grant your user access to that group…
Simply change permissions on the
/etc/hosts file :
Test the user’s new permissions
The change will be system-wide upon next login. But can also be used immediately in a terminal in the current boot-cycle using :
Done (with a bit of a sigh).
blog comments powered by Disqus