On Wed, 11 Dec 1996, CoB SysAdmin wrote: > I've got four modems that people can use to dial into my linux machine. > I keep the standard defaults in a file called "options.std.dialin", and > then I've got four files that merely read like so: > > -------------- > # Set IP address... > :xxx.yyy.zzz.200 > > file /etc/ppp/options.std.dialin > --------------- > > It seems kinda silly that there's no way to have just one file that maps > IP's to ttys.... rather than having to have a separate file for each > one.
yes, i find that silly too. so silly that i refuse to use it. i'd much rather have all the ip addresses defined in one file (it's much easier to vi one file than several to make global changes). my solution is to NOT use /etc/ppp/options.tty*, (i find they're too inflexible - it's IMPOSSIBLE to override any option specified in the options.* files) but to just use a bare bones /etc/ppp/options file and have a /usr/local/bin/ppplogin.sh script which execs pppd with the correct options. e.g. something like: #!/bin/sh tty=`basename \`tty\`` PPPIDLE="idle-disconnect 900" LOCIP=203.16.167.1 OPTIONS="-detach modem crtscts passive proxyarp" # default is to assign IP address by port number. # also ttyS0 is dedicated to user ljs. no one else is allowed # to use that line. case $tty in ttyS0) if [ "$LOGNAME" -ne "ljs" ] ; then echo You are not authorised to use this line. exec /bin/false fi ;; ttyS1) REMIP=d01.taz.net.au ;; ttyS2) REMIP=d02.taz.net.au ;; ttyS3) REMIP=d03.taz.net.au ;; esac # override default dynamic IP address for certain login names. This # allows assigning static IPs to certain users. case $LOGNAME in ljs) REMIP=nightowl.taz.net.au ; PPPIDLE="" ;; helenst) REMIP=helenst.taz.net.au ; PPPOPTS="-d" ;; Ptest) REMIP=203.16.167.53 ;; ppac) REMIP="" ; PPPIDLE="" ;; esac exec /usr/sbin/pppd $OPTIONS $PPPOPTS $PPPIDLE $LOCIP:$REMIP ppp users have this script as their login shell in /etc/passwd. There are minor complications when using this with mgetty's AutoPPP option. Everything works, except for being able to restrict ttyS0 to user ljs. It's not a huge issue for me at the moment as no-one else knows the phone number. One of these days i'll install idled or timeoutd or something and configure it so that everyone but ljs has 0 minutes on ttyS0. Edit /etc/mgetty/login.config so that it runs /usr/local/bin/ppplogin.auto for the /AutoPPP/ line: change: /AutoPPP/ - - /usr/sbin/pppd auth -chap +pap login to /AutoPPP/ - - /usr/local/bin/ppplogin.auto The ppplogin.auto shell script is simpler because there is no way of determining who the user is until after pppd has been run.: #!/bin/sh tty=`basename \`tty\`` PPPIDLE="idle-disconnect 900" LOCIP=203.16.167.1 OPTIONS="-detach modem crtscts passive proxyarp auth -chap +pap login" case $tty in ttyS0) REMIP=nightowl.taz.net.au ;; ttyS1) REMIP=d04.taz.net.au ;; ttyS2) REMIP=d05.taz.net.au ;; ttyS3) REMIP=d01.taz.net.au ;; esac exec /usr/sbin/pppd $OPTIONS $PPPIDLE $LOCIP:$REMIP Another variant of this that i have used on other systems is to have an /etc/slip.hosts style file which is parsed by the ppplogin sh/perl script to assign a static IP address based on either login name, or a dynamic IP address based on port number if the specified IP address is the string "-dynamic-". Craig -- TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to [EMAIL PROTECTED] . Trouble? e-mail to [EMAIL PROTECTED]