On a Linux machine, I am trying to run the udhcpc command as non-root. I am getting the error udhcpc: socket: Operation not permitted. Is there any way to execute udhcpc as a simple user in Linux?

migrated from stackoverflow.com May 23 '11 at 20:17

This question came from our site for professional and enthusiast programmers.

  • This belongs on superuser.com – Ex Umbris May 23 '11 at 17:13
  • Do you really want a non-root user potentially changing the machine's IP address? – Ex Umbris May 23 '11 at 17:14

A dhcp client needs to bind an ICMP socket, and that requires root permissions¹. You can give a specific user permission to run dhcp through sudo. Run visudo to add a line like this to the configuration (joe is the name of the user to authorize):

joe ALL = (root) /sbin/udhcpc

¹ Or the appropriate capability, but they're not widespread yet.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy