ppp:*:500:200:Public PPP Account:/tmp:/etc/ppp/ppplogin
Of course, you may want to use different uids and gids than those shown
above. You would also have to set the password for the above account
using the passwd command.
The ppplogin script might then look like this:
#!/bin/sh
# ppplogin - script to fire up pppd on login
mesg n
stty -echo
exec pppd -detach silent modem crtscts
The mesg command disables other users to write to the tty
using, for instance, the write command. The stty command
turns off character echoing. The is necessary, because otherwise
everything the peer sends would be echoed back to it. The most
important pppd option given above is -detach, because
it prevents pppd drom detaching from the controlling tty. If
we didn't specify this option, it would go to the background, making
the shell script exit. This would in turn would cause the serial line
to be hung up and the connection to be dropped. The silent
option causes pppd to wait until it receives a packet from the
calling system before it starts sending. This prevents transmit
timeouts to occur when the calling system is slow in firing up its PPP
client. The modem makes pppd watch the DTR line to
see if the peer has dropped the connection, and crtscts turns
on hardware handshake.
Beside these options, you might want to force some sort of authentication, for example by specifying auth on pppd's command line, or in the global options file. The manual page also discusses more specific options for turning individual authentication protocols on and off.