diff options
Diffstat (limited to 'usr.bin/uucp/acucntrl/acucntrl.8')
-rw-r--r-- | usr.bin/uucp/acucntrl/acucntrl.8 | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/usr.bin/uucp/acucntrl/acucntrl.8 b/usr.bin/uucp/acucntrl/acucntrl.8 new file mode 100644 index 0000000..57ce495 --- /dev/null +++ b/usr.bin/uucp/acucntrl/acucntrl.8 @@ -0,0 +1,164 @@ +.\" Copyright (c) 1985, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)acucntrl.8 8.2 (Berkeley) 12/11/93 +.\" +.TH ACUCNTRL 8 "December 11, 1993" +.UC 6 +.SH NAME +acucntrl \- turn around tty line between dialin and dialout +.SH SYNOPSIS +.B /usr/lib/uucp/acucntrl +keyword ttyline +.SH DESCRIPTION +.PP +.I Acucntrl +turns around the terminal line, +enabling it to be used for both dialin and dialout. +On dialin a terminal line is assumed to have modem control enabled and a getty +process in existence waiting for logins. On dialout modem control is disabled +and there is no getty process. +.PP +This program must be run setuid to root. +.PP +.I keyword +is chosen from the list: +.I disable +or +.IR dialout , +to condition a line for dialout; +and +.I enable +or +.IR dialin , +to condition a line for dialin. +.PP +When the line is conditioned for dialing out, the login name of the real uid +of the process is placed in /etc/utmp in capitals. +This declares that the line is in use and acts as an additional locking +mechanism. +.I Acucntrl +will refuse to act if the /etc/utmp entry for the line is not null, +is not the the user's login name (capitalized or not), +and if the process is not running as the superuser. +The last condition is to allow the superuser to clear the state of the line. +.PP +Turning modem control on or off is handled by poking into /dev/kmem. +It is currently implemented for dz, dh, and dmf lines. +.PP +Under 4.2 BSD the program will also refuse to disable a line if carrier is +sensed on it. This is to avoid the dead period where someone has just dialed +in and made the connection but has not yet logged in. +.PP +.I Ttyline +can be either of the form tty* or /dev/tty*. +Enabling/disabling a line whose name does not begin with ttyd? is prohibited +unless the real uid of the process is 0 or if the login name corresponding to +the real uid is uucp. This is a security precaution. +.PP +Steps taken when disabling +.RI ( i . e . +setup for dialing out) +.IP 1) +check input arguments +.IP 2) +look in /etc/utmp to check that the line is not in use by another user +.IP 3) +disable modem control on line +.IP 4) +check for carrier on device +.IP 5) +change owner of device to real uid +.IP 6) +edit /etc/ttys, changing the first character of the appropriate line to 0 +.IP 7) +send a hangup to process 1 to poke init to disable getty +.IP 8) +post uid name in capitals in /etc/utmp to let world know device has been grabbed +.IP 9) +make sure that DTR is on +.PP +Steps taken when enabling +.RI ( i . e . +setup for dialing in) +.IP 1) +check input arguments +.IP 2) +look in /etc/utmp to check that the line is not in use by another user +.IP 3) +make sure modem control on line is disabled +.IP 4) +turn off DTR to make sure line is hung up +.IP 5) +condition line: clear exclusive use and set hangup on close modes +.IP 6) +turn on modem control +.IP 7) +edit /etc/ttys, changing the first character of the appropriate line to 1 +.IP 8) +send a hangup to process 1 to poke init to enable getty +.IP 9) +clear uid name for /etc/utmp +.SH HISTORY +.PP +First written by Allan Wilkes (fisher!allan) +.PP +Modified June 8,1983 by W.Sebok (astrovax!wls) to poke the kernel rather +than use a kernel hack to turn on/off modem control, using a subroutine +stolen from a program written by Tsutomu Shimomura {astrovax,escher}!tsutomu +.PP +Worked over many times by W.Sebok +.RI ( i . e . +hacked to death) +.SH FILES +/dev/kmem, /vmunix, /etc/ttys, /etc/utmp, /dev/tty* +.SH BUGS +.PP +Sensing carrier requires the 4.2 BSD TIOCMGET ioctl call. Unfortunately this +ioctl is not implemented in the vanilla 4.2 BSD dh driver even though the +dz and dmf drivers use an emulation of the DH11's modem control bits. This +has been fixed here. +.PP +Some time (currently 2 seconds) is required between disabling modem control +and opening the device. This is probably because of a race with getty whose +open is finally being allowed to complete. This time interval may not be +enough on a loaded system. Because of this problem and the above problem with +the dh driver there is deliberately no error message given when the TIOCMGET +ioctl fails. +.PP +Previously there were similar synchronization problems with the init process. +When dialins are disabled the capitalized name of the process cannot be posted +into /etc/utmp until init has finished clearing /etc/utmp. However one does +not know how long that will take, and, on a loaded system, it can take quite +a while. This was solved by the strategy of 1) posting the name, 2) poking +init, 3) going into a loop where the process repeatedly waits a second and +checks whether the entry has been cleared from /etc/utmp, and 4) posting the +name again. |