Using PPP and root privileges

Linux PPP HOWTO
Prev |  | Next

# Chapter 14. Using PPP and root privileges

Because PPP needs to set up networking devices, change the kernel routing table and so forth, it requires root privileges to do this.

If users other than root are to set up PPP connections, the pppd program should be setuid root :-

    -rwsr-xr-x   1 root     root        95225 Jul 11 00:27 /usr/sbin/pppd

If /usr/sbin/pppd is not set up this way, then as root issue the command:-

    chmod u+s /usr/sbin/pppd

What this does is make pppd run with root privileges even if the binary is run by an ordinary user. This allows a normal user to run pppd with the necessary privileges to set up the network interfaces and the kernel routing table.

Programs that run 'set uid root' are potential security holes and you should be extremely cautious about making programs 'suid root'. A number of programs (including pppd) have been carefully written to minimise the danger of running suid root, so you should be safe with this one, (but no guarantees).

Depending on how you want your system to operate - specifically if you want ANY user on your system to be able to initiate a PPP link, you should make your ppp-on/off scripts world read/execute. (This is probably fine if your PC is used ONLY by you).

However, if you do NOT want just anyone to be able to start up a PPP connection (for example, your children have accounts on your Linux PC and you do not want them hooking into the Internet without your supervision), you will need to establish a PPP group (as root, edit /etc/group) and :-

- Make pppd suid root, owned by user root and group PPP, with the 'other' permissions on this file empty. It should then look like:-

      -rwsr-x---   1 root     PPP        95225 Jul 11 00:27 /usr/sbin/pppd

- Make the ppp-on/off scripts owned by user root and group PPP.

- Make the ppp-on/off scripts read/executable by group PPP.

        -rwxr-x---   1 root     PPP           587 Mar 14  1995 /usr/sbin/ppp-on
        -rwxr-x---   1 root     PPP           631 Mar 14  1995 /usr/sbin/ppp-off

- Make the other access rights for ppp-on/off nill.

- add the users who will be firing up PPP to the PPP group in /etc/group.

Even if you do this, ordinary users will STILL not be able to shut down the link under software control! Running the `ppp-off` script requires root privileges. However, any user can just turn off the modem (or disconnect the telephone line from an internal modem).

An alternative (and better method) to this set up is to use the `sudo` program. This offers superior security and will allow you to set things up so that any (authorised) user can activate/deactivate the link using the scripts. Using `sudo` will allow an authorised user to activate/deactivate the PPP link cleanly and securely.

Prev | Home | Next
The `/etc/host.conf` file |  | Setting up the PPP connection files