[radvd-devel-l] Radvd problem with non-root: config_interface() fails

Pekka Savola pekkas at netcore.fi
Thu Oct 25 01:44:10 EDT 2007


I noticed a Debian PR [1] that radvd 1.0 prints an error from 
config_interface() if non-root user is used.

For example:
Jul  4 06:37:12 orion radvd[2829]: failed to set CurHopLimit (64) for eth0

This stems from the fact that config_interface() wants to modify /proc 
entries which are not writable except by root.

Unfortunately I don't see an easy eay to fix this.  We could drop root 
privileges later (which in turn would require shuffling code around 
quite a bit), but if config changed, new configuration couldn't get 
activated after SIGHUP.  A more comprehensive solution would be 
splitting the radvd process to a root-running "master process" and 
nonroot "worker process" (like e.g. openssh does) and a signalling 
channel between them but that would require lots of code.

Are there other options how to proceed?

What I'm going to do for now is add a strerror(errno) to 
set_interface_var() function and document this problem in code and in 


Pekka Savola                 "You each name yourselves king, yet the
Netcore Oy                    kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings

More information about the radvd-devel-l mailing list