504 lines
20 KiB
Plaintext
504 lines
20 KiB
Plaintext
README for init/getty/login, by poe@daimi.aau.dk
|
|
|
|
This package contains simpleinit, agetty, and login programs for Linux.
|
|
Additional utilities included are: hostname, who, write, wall, users
|
|
domainname, hostid, cage and mesg.
|
|
|
|
Most of this software has been contributed by others, I basically just
|
|
ported the things to Linux.
|
|
|
|
Version 1.49 (20-Jun-97)
|
|
Small patches for new util-linux distribution and glibc compat.
|
|
PAM support in login.c by Erik Troan.
|
|
|
|
Version 1.48 (6-Jun-97)
|
|
Now changes mode and owner of /dev/vcs devices for console logins.
|
|
After idea by Andries Brouwer.
|
|
|
|
Version 1.47 (2-Apr-97)
|
|
Got new version of hostid.c and hostid.1 from
|
|
Sander van Malssen <svm@kozmix.ow.nl>.
|
|
Removed premature endutent() call in login.c, simpleinit.c and
|
|
agetty.c to be compatible with the changed semantics of gnu libc2.
|
|
Fix by Jesse Thilo <Jesse.Thilo@pobox.com>.
|
|
|
|
Version 1.46 (28-Jan-97)
|
|
Several security fixes for login by David Holland (buffer overruns)
|
|
<dholland@hcs.harvard.edu>
|
|
Fixed write.c, to handle a terminating period correctly.
|
|
Re-indented login.c, it was getting too messy.
|
|
|
|
Version 1.45a (16-Dec-96)
|
|
Better support in login for shadow passwords. Compile with
|
|
-DSHADOW_PWD if you have <shadow.h>. This is on by default.
|
|
By Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl>.
|
|
Changed the wtmp locking scheme in login.c,agetty.c,simpleinit.c
|
|
to flock() /etc/wtmplock instead of the wtmp file directly.
|
|
This avoids a denial of service attack.
|
|
Some support for the RB-1 Cryptocard token for challenge/response
|
|
authentication. This needs a DES library, either Eric Young's
|
|
libdes, or the Koontz implementation, see cryptocard.c.
|
|
Initial support patch by Randolph Bentson,
|
|
<bentson@grieg.seaslug.org>
|
|
Changed getpass() to use fputs() instead of fprintf().
|
|
|
|
Version 1.44 (13-Nov-96):
|
|
Made isapty() in checktty.c more resilient to 2.0 systems
|
|
that haven't re-MAKEDEV'ed their pty devices.
|
|
|
|
Version 1.43 (8-Nov-96):
|
|
Fix to checktty.c: PTY's are numbered differently after 1.3,
|
|
blush! Fix by Gerhard Schneider <gs@ilfb.tuwien.ac.at>
|
|
|
|
Version 1.42c (6-Nov-96):
|
|
Small fix by Gabriel M. Schuyler <schuyler@easiest.com>, to get
|
|
better syslog messages (1 LOGIN FAILURE instead of 2 LOGIN FAILURES).
|
|
Patch butchered by me.
|
|
|
|
Version 1.42b (30-Sep-96):
|
|
Got patch for checktty.c from Christoph Lameter
|
|
<clameter@miriam.fuller.edu> so it doesn't traverse the groupfile
|
|
"manually" but uses the getgroups() call, this is more efficient
|
|
with large groupfiles and NIS/YP.
|
|
|
|
Version 1.42a (24-Sep-96):
|
|
Added extra syslog() call to login.c to log all good logins.
|
|
Patch from Steve Philp.
|
|
|
|
Version 1.41 (20-Jul-96):
|
|
Added security fix to checktty.c by JDS to clear certain lists.
|
|
Patches butchered and ANSI'fied by me.
|
|
Added -n option to agetty to avoid the login prompt.
|
|
|
|
Version 1.40a (29-Dec-95):
|
|
Added -f <issue_file> option to agetty. Patches from Eric Rasmussen
|
|
<ear@usfirst.org>, but somewhat butchered by me.
|
|
|
|
Version 1.39 (25-Oct-95):
|
|
Lots of testing and bugfixes in agetty. Now the modem init stuff
|
|
should finally work (for me). Also wrote modem.agetty as an example
|
|
on how to use agetty with a modem.
|
|
Agetty now also supports baud rates of 38400, 57600, 115200 and
|
|
230400 bps.
|
|
|
|
Version 1.37 (15-Sep-95):
|
|
Added -I <initstring> and -w options to agetty.c for those that
|
|
use agetty with modems.
|
|
|
|
Version 1.36 (25-Aug-95):
|
|
Enhanced /etc/usertty features with group support. Moved this part
|
|
of login.c to checktty.c. One can now define classes of hosts and
|
|
ttys and do access checking based on unix-group membership. See
|
|
login.1. Also time ranges for logins can be specified, for example
|
|
writing the line
|
|
|
|
joe [mon:tue:wed:thu:fri:8-16]@barracuda [mon:tue:wed:thu:fri:0-7:17-23]@joes.pc.at.home [sat:sun:0-23]@joes.pc.at.home
|
|
|
|
says that during working hours, Joe may rlogin from the host
|
|
barracuda, whereas outside working hours and in weekends Joe may
|
|
rlogin from his networked PC at home.
|
|
|
|
login.c: failures was not properly initialized, it now is. Also
|
|
made sure ALL failures are really logged to syslog.
|
|
|
|
Version 1.35 (7-Aug-95):
|
|
login.c: Much improved features for the usertty file, allows
|
|
access control based on both hostnames/addresses and line. See the
|
|
about.usertty file and the man-page.
|
|
|
|
Fixed agetty so it doesn't fiddle with the ut_id field in the
|
|
utmp record, this should prevent growing utmps on systems with
|
|
more than 10 login lines. Fix suggested and checked by Alan Wendt
|
|
<alan@ezlink.com> in his agetty.1.9.1a.
|
|
|
|
Agetty now installs as agetty again, not as getty.
|
|
Updated man-page for login(1) to document /etc/usertty changes.
|
|
|
|
This has been tested on Linux 1.2.5 with GCC 2.5.8 and libc 4.5.26.
|
|
|
|
Version 1.33a (20-Jun-95):
|
|
rchatfie@cavern.nmsu.edu ("rc.") suggested that I should remove
|
|
the #ifndef linux around the special logging of dial-up
|
|
logins. This is now done, so each login via a serial port
|
|
generates a separate DIALUP syslog entry.
|
|
|
|
Version 1.33 (5-Jun-95):
|
|
Patch by Ron Sommeling <sommel@sci.kun.nl> and
|
|
jlaiho@ichaos.nullnet.fi (Juha Laiho) for agetty.c, used
|
|
to return a pointer to an automatic variable in get_logname().
|
|
Many patches from or via Rickard Faith <faith@cs.unc.edu>, fixing
|
|
man-pages etc, now defaults to using /var/log/wtmp and /var/run/utmp
|
|
according to the new FSSTND.
|
|
|
|
Fix in login.c for CPU eating bug when a remote telnet client dies
|
|
while logging in.
|
|
|
|
This is for Linux 1.2, GCC 2.6.2 or later.
|
|
|
|
Version 1.32b (12-Mar-95):
|
|
Login now sets the tty group to "tty" instead of "other". Depending
|
|
on compile-time define USE_TTY_GROUP the tty mode is set to 0620 or
|
|
0600 instead of 0622. All as per suggestion by Rik Faith and the
|
|
linux-security list.
|
|
Write/wall now strips control chars except BEL (\007). Again after
|
|
suggestion by Rik Faith.
|
|
|
|
Version 1.32a
|
|
Urgent security patch from Alvaro M. Echevarria incorporated into
|
|
login.c. This is really needed on machines running YP until
|
|
the libraries are fixed.
|
|
|
|
Version 1.32
|
|
Login now logs the ip-address of the connecting host to utmp as it
|
|
should.
|
|
|
|
Version 1.31b (2-Feb-95):
|
|
Daniel Quinlan <quinlan@yggdrasil.com> and Ross Biro
|
|
<biro@yggdrasil.com> suggested a patch to login.c that allows for
|
|
shell scripts in the shell field of /etc/passwd, so one can now
|
|
have (as a line in /etc/passwd):
|
|
bye::1000:1000:Outlogger:/bin:echo Bye
|
|
Logging in as "bye" with no password simply echoes Bye on the screen.
|
|
This has applications for pppd/slip.
|
|
|
|
Version 1.31a (28-Oct-94):
|
|
Scott Telford provided a patch for simpleinit, so executing reboot
|
|
from singleuser mode won't partially execute /etc/rc before
|
|
the reboot.
|
|
|
|
Version 1.30 (17-Sep-94):
|
|
tobias@server.et-inf.fho-emden.de (Peter Tobias) has made a more
|
|
advanced hostname command that understands some options such as
|
|
-f for FQDN etc. I'll not duplicate his work. Use his hostname
|
|
package if you wish.
|
|
|
|
svm@kozmix.xs4all.nl (Sander van Malssen) provided more features
|
|
for the /etc/issue file in agetty. \U and \u now expand to the
|
|
number of current users.
|
|
|
|
It is now possible to state the value of TERM on the agetty command
|
|
line. This was also provided by Sander.
|
|
|
|
This has been built under Linux 1.1.42 with gcc 2.5.8 and libc 4.5.26.
|
|
|
|
Version 1.29 (18-Aug-94):
|
|
Finally got around to making a real version after the numerous
|
|
alpha versions of 1.28. Scott Telford <st@epcc.ed.ac.uk> provided
|
|
a patch for write(1) to make it look more like BSD write.
|
|
|
|
Fixed login so that the .hushlogin feature works even with real
|
|
protective users mounted via NFS (ie. where root can't access
|
|
the user's .hushlogin file).
|
|
|
|
Cleaned up the code to make -Wall bearable.
|
|
|
|
Version 1.28c (21-Jul-94):
|
|
Rik Faith reminded me that agetty should use the syslog
|
|
facility. It now does.
|
|
|
|
Version 1.28b (30-May-94):
|
|
On suggestion from Jeremy Fitzhardinge <jeremy@suite.sw.oz.au>
|
|
I added -- as option delimiter on args passed from agetty to
|
|
login. Fixes -froot hole for other login programs. The login
|
|
program in this package never had that hole.
|
|
|
|
Version 1.28a (16-May-94):
|
|
bill@goshawk.lanl.gov provided a couple of patches, one fixing
|
|
terminal setup in agetty, and reboot is now supposed to be
|
|
in /sbin according to FSSTND.
|
|
|
|
Version 1.27 (10-May-94):
|
|
Changed login.c, so all bad login attempts are logged, and added
|
|
usertty security feature. See about.usertty for an explanation.
|
|
There's no longer a limit of 20 chars in the TERM environment
|
|
variable. Suggested by Nicolai Langfeldt <janl@math.uio.no>
|
|
|
|
Added #ifdef HAVE_QUOTA around quota checks. Enable them if
|
|
you have quota stuff in your libraries and kernel.
|
|
Also re-enabled set/getpriority() calls as we now have them,
|
|
and have had for a long time...
|
|
|
|
Now wtmp is locked and unlocked around writes to avoid mangling.
|
|
Due to Jaakko Hyv{tti <HYVATTI@cc.helsinki.fi>.
|
|
|
|
Wrt. agetty: A \o in /etc/issue now inserts the domainname, as
|
|
set by domainname(1). Sander van Malssen provided this.
|
|
This is being used under Linux 1.1.9
|
|
|
|
Beefed up the agetty.8 man-page to describe the /etc/issue
|
|
options. Added man-pages for wall, cage, who.
|
|
|
|
Version 1.26 alpha (25-Apr-94):
|
|
Added patch from Bill Reynolds <bill@goshawk.lanl.gov> to
|
|
simpleinit, so it will drop into single user if /etc/rc
|
|
fails, eg. from fsck.
|
|
|
|
Version 1.25 (9-Feb-94):
|
|
Agetty should now work with the Linux 0.99pl15a kernel.
|
|
ECHOCTL and ECHOPRT are no longer set in the termios struct.
|
|
Also made agetty accept both "tty baudrate" and "baudrate tty"
|
|
arguments.
|
|
|
|
Version 1.24 (23-Jan-94): changes since 1.22
|
|
Christian von Roques <roques@juliet.ka.sub.org> provided a patch
|
|
that cleans up the handling of the -L option on agetty.
|
|
Rik Faith <faith@cs.unc.edu> enhanced several man-pages...
|
|
|
|
Version 1.23 (11-Dec-93): changes since 1.21
|
|
Mitchum DSouza provided the hostid(1) code. It needs libc 4.4.4 or
|
|
later and a Linux 0.99.14 kernel or later. It can set and print
|
|
the world unique hostid of the machine. This may be used in
|
|
connection with commercial software licenses. God forbid!
|
|
I added the -v option, and munged the code a bit, so don't blame
|
|
Mitch if you don't like it.
|
|
|
|
I made the "cage" program. Using this as a shell in the passwd
|
|
file, enables one to let users log into a chroot'ed environment.
|
|
For those that have modem logins and are concerned about security.
|
|
Read the source for further info.
|
|
|
|
"who am i" now works.
|
|
|
|
The login program works with Yellow Pages (aka NIS) simply by
|
|
linking with an appropriate library containing a proper version
|
|
of getpwnam() and friends.
|
|
|
|
Version 1.21 (30-Oct-93): changes since 1.20
|
|
In simpleinit.c: The boottime wtmp record is now written *after*
|
|
/etc/rc is run, to put a correct timestamp on it.
|
|
Daniel Thumim <dthumim@mit.edu> suggested this fix.
|
|
|
|
The source and Makefile is prepared for optional installation of
|
|
binaries in /sbin instead of /etc, and logfiles in /usr/adm instead
|
|
of /etc. See and change the Makefile to suit your preferences.
|
|
Rik Faith and Stephen Tweedie inspired this change.
|
|
|
|
Version 1.20 (30-Jul-93): changes since 1.17:
|
|
Versions 1.18 and 1.19 were never made publicly available.
|
|
Agetty now supports a -L switch that makes it force the CLOCAL flag.
|
|
This is useful if you have a local terminal attached with a partly
|
|
wired serial cable that does not pass on the Carrier Detect signal.
|
|
|
|
There's a domainname program like the hostname program; contributed
|
|
by Lars Wirzenius.
|
|
|
|
Simpleinit will now write a REBOOT record to wtmp on boot up. Time-
|
|
zone support is now optional in simpleinit. Both of these patches
|
|
were made by Scott Telford <st@epcc.ed.ac.uk>.
|
|
|
|
This is for Linux 0.99.11 or later.
|
|
|
|
Version 1.17 (19-May-93): changes since 1.16:
|
|
Login, simpleinit and write should now work with shadow passwords
|
|
too. See the Makefile. Thanks to Anders Buch who let me have an
|
|
account on his SLS based Linux box on the Internet, so I could test
|
|
this. I should also thank jmorriso@rflab.ee.ubc.ca (John Paul Morrison)
|
|
who sent me the shadow patch to login.c
|
|
|
|
Version 1.16 (24-Apr-93): changes since 1.15a:
|
|
Simpleinit now clears the utmp entry associated with the pid's that
|
|
it reaps if there is one. A few are still using simpleinit and this
|
|
was a popular demand. It also appends an entry to wtmp
|
|
|
|
Version 1.15a (15-Mar-93): changes since 1.13a:
|
|
junio@shadow.twinsun.com (Jun Hamano) sent me a one-line fix
|
|
for occasional mangled issue-output from agetty.
|
|
|
|
Version 1.13a (2-Mar-93): changes since 1.12a:
|
|
With the new LILO (0.9), there are more than one possible arg
|
|
to init, so Werner Almesberger <almesber@bernina.ethz.ch>
|
|
suggested that a loop over argv[] was made in boot_single() in
|
|
simpleinit.c
|
|
|
|
Version 1.12a (24-Feb-93): changes since 1.11:
|
|
This is for Linux 0.99.6 or later. Built with gcc 2.3.3 and libc4.2
|
|
jrs@world.std.com (Rick Sladkey) told me that the setenv("TZ",..)
|
|
in login.c did more harm than good, so I commented it out.
|
|
|
|
Version 1.11a (16-Feb-93): changes since 1.9a:
|
|
This is for Linux 0.99.5 or later.
|
|
Anthony Rumble <arumble@extro.ucc.su.OZ.AU> made me avare that
|
|
the patches for vhangup() from Steven S. Dick didn't quite work,
|
|
so I changed it.
|
|
|
|
Linus Torvalds provided another patch relating to vhangup, since
|
|
in newer Linuxen vhangup() doesn't really close all files, so we
|
|
can't just open the tty's again.
|
|
|
|
Version 1.9a (18-Jan-93): changes since 1.8a:
|
|
Rick Faith sent me man-pages for most of the utilities in this
|
|
package. They are now included.
|
|
|
|
Steven S. Dick <ssd@nevets.oau.org> sent me a patch for login.c
|
|
so DTR won't drop during vhangup() on a modemline.
|
|
|
|
This is completely untested!! I haven't even had the time to
|
|
compile it yet.
|
|
|
|
Version 1.8a (13-Dec-92): changes since 1.7:
|
|
This is for Linux 0.98.6 or later. Compiles with gcc2.2.2d7 and libc4.1
|
|
|
|
Bettered write/wall after fix from I forget who. Now wall can have
|
|
commandline args.
|
|
|
|
Fixed bug in who.c
|
|
|
|
Patched simpleinit.c with patch from Ed Carp, so it sets the timezone
|
|
from /etc/TZ. Should probably by be /etc/timezone.
|
|
|
|
Sander Van Malssen <sander@kozmix.hacktic.nl> provided a patch
|
|
for getty, so it can understand certain escapecodes in /etc/issue.
|
|
|
|
I hacked up a very simple substitute for a syslog() call, to try out
|
|
the logging. If you have a real syslog() and syslogd then use that!
|
|
|
|
The special vhangup.c file is out, it's in the official libc by now.
|
|
(and even in the libc that I have :-)
|
|
|
|
who, and write are now deprecated, get the better ones from one of
|
|
the GNU packages, shellutils I think.
|
|
|
|
Some people think that the simple init provided in this package is too
|
|
spartan, if you think the same, then get the SYSV compatible init
|
|
from Miquel van Smoorenburg <miquels@maestro.htsa.aha.nl>
|
|
Simpleinit will probably be deprecated in the future.
|
|
|
|
Version 1.7: 26-Oct-92 changes since 1.6:
|
|
This is for Linux 0.97PL4 or later.
|
|
|
|
Thanks to Werner Almesberger, init now has support for a
|
|
singleuser mode.
|
|
|
|
Login now supports the -h <hostname> option, used in connection
|
|
with TCP/IP. (rlogin/telnet)
|
|
|
|
Getty writes an entry to /etc/wtmp when started, so last won't report
|
|
"still logged in" for tty's that have not been logged into since
|
|
the last user of that tty logged out. This patch was inspired by
|
|
Mitchum DSouza. To gain the full benefit of this, get the newest
|
|
last from the admutils-1.4.tar.Z package or later.
|
|
|
|
Version 1.6 (29-Aug-92): changes since 1.5:
|
|
This is for Linux 0.97P1+ or later.
|
|
|
|
Login now uses the newly implemented vhangup() sys-call, to prevent
|
|
snooping on the tty.
|
|
An alternative getpass() function is now provided with login, because
|
|
I was told that the old one in libc didn't work with telnet and
|
|
or rlogin. I don't have a network or a kernel with TCP/IP so I haven't
|
|
tested the new one with telnet, but it is derived from BSD sources
|
|
that are supposed to work with networking.
|
|
|
|
Version 1.5 (12-Aug-92): changes since 1.4
|
|
This is for Linux 0.97 or later, and has been built with gcc2.2.2
|
|
|
|
This release just puts in a few bugfixes in login.c and simpleinit.c
|
|
|
|
Version 1.4 (4-Jul-92): changes since 1.3:
|
|
This is for Linux 0.96b, and has been built and tested with gcc 2.2.2.
|
|
|
|
Init now handles the SIGINT signal. When init gets a SIGINT it will
|
|
call /usr/bin/reboot and thereby gently reboot the machine. This
|
|
makes sense because after Linux 0.96B-PL1 the key-combination
|
|
Ctrl-Alt-Del may send a SIGINT to init instead of booting the
|
|
machine the hard way without syncing or anything.
|
|
|
|
You may want to get the admutils-1.1 package which includes a program
|
|
that will instruct the kernel to use the "gentle-reboot" procedure.
|
|
|
|
Version 1.3 (14-Jun-92): changes since 1.2:
|
|
This is for Linux 0.96A.
|
|
|
|
The ioctl(TIOCSWINSZ) has been removed from login.c because it now
|
|
works :-).
|
|
|
|
login.c now supports a lastlog database.
|
|
|
|
Several programs and pieces of source that were included in the 1.2
|
|
package has been *removed* as they are incorporated into the new
|
|
libc. Other omitted parts such as last(1) has been replaced by
|
|
better versions, and can be found in the admutils package.
|
|
|
|
Agetty is now called getty and will be placed in /etc.
|
|
|
|
A few changes has been made to make it possible to compile the
|
|
stuff with GCC 2.x.
|
|
|
|
Version 1.2 (28-Feb-92): changes since 1.1:
|
|
This is for Linux 0.12.
|
|
|
|
A couple of problems with simpleinit.c has been solved, thanks to
|
|
Humberto Zuazaga. So now init groks comments in /etc/inittab, and
|
|
handles the HUP and TSTP signals properly.
|
|
|
|
I added two small scripts to the distribution: users and mesg.
|
|
|
|
TERM is now carried through from /etc/inittab all the way to the
|
|
shell. Console tty's are special-cased, so the termcap entry in
|
|
/etc/inittab is overridden by the setting given at boot-time.
|
|
This requires a different patch to the kernel than that distributed
|
|
with version 1.1
|
|
|
|
Login no more sends superfluous chars from a password to the
|
|
shell. It also properly prints a NL after the password.
|
|
|
|
Agetty didn't set the erase character properly, it does now.
|
|
|
|
A few extra defines has been added to utmp.h
|
|
|
|
Several netters helped discover the bugs in 1.1. Thanks to them
|
|
all.
|
|
|
|
Version 1.1 (released 19-Feb-92): Changes since 1.0:
|
|
A bug in simpleinit.c has been fixed, thanks to Pietro Castelli.
|
|
The definition of the ut_line field has been changed to track the
|
|
USG standard more closely, we now strip "/dev/" off the front.
|
|
Thanks to: Douglas E. Quale and Stephen Gallimore.
|
|
|
|
I have added a getlogin.c library routine, and a write(1) command.
|
|
I removed the qpl-init stuff. If people want to use it, they should
|
|
get it from the source. I don't want to hack on it anymore.
|
|
|
|
A couple of people reported problems with getty having problems
|
|
with serial terminals. That was correct. I borrowed a null-modem
|
|
from Tommy Thorn, and now the problems should be fixed. It seems
|
|
that there is kept a lot of garbage in the serial buffers, flush
|
|
them and it works like a charm. Getty does an ioctl(0, TCFLSH, 2)
|
|
for this.
|
|
|
|
The write.c code now doubles as code for a wall(1) program.
|
|
|
|
Description of the various files:
|
|
|
|
login.c The login program. This is a portation of BSD login, first
|
|
to HP-UX 8.0 by Michael Glad (glad@daimi.aau.dk), and
|
|
to Linux (initially to 0.12) by me.
|
|
|
|
agetty.c The getty program. From comp.sources.misc, by W.Z. Venema.
|
|
Hacked a bit by me.
|
|
|
|
write.c A write(1) command, used to pass messages between users
|
|
at different terminals. This code doubles as code for
|
|
a wall(1) command. Make a symlink: /usr/bin/wall ->
|
|
/usr/bin/write for this.
|
|
|
|
mesg A tiny shellscript, so you can avoid that other people write
|
|
to your shell.
|
|
|
|
pathnames.h:
|
|
Header.
|
|
|
|
Getty will print the contents of /etc/issue if it's present before asking
|
|
for username. Login will print the contents of /etc/motd after successful
|
|
login. Login doesn't print /etc/motd, and doesn't check for mail if
|
|
~/.hushlogin is present and world readable.
|
|
|
|
If /etc/nologin is present then login will print its contents and disallow
|
|
any logins except root.
|
|
It might be a good idea to have a "rm -f /etc/nologin" line in one's
|
|
/etc/rc file.
|
|
|
|
If /etc/securetty is present it defines which tty's that root can login on.
|
|
|
|
- Peter (poe@daimi.aau.dk)
|