1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--Converted with LaTeX2HTML 96.1-h (September 30, 1996) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds -->
<HTML>
<HEAD>
<TITLE>Logins via terminals</TITLE>
<META NAME="description" CONTENT="Logins via terminals">
<META NAME="keywords" CONTENT="sag">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<LINK REL=STYLESHEET HREF="sag.css">
</HEAD>
<BODY LANG="EN" >
<A NAME="tex2html1321" HREF="node81.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="./next_motif.gif"></A> <A NAME="tex2html1319" HREF="node79.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="./up_motif.gif"></A> <A NAME="tex2html1313" HREF="node79.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="./previous_motif.gif"></A> <A NAME="tex2html1323" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="./contents_motif.gif"></A> <A NAME="tex2html1324" HREF="node114.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="./index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html1322" HREF="node81.html">Logins via the network</A>
<B>Up:</B> <A NAME="tex2html1320" HREF="node79.html">Logging In And Out</A>
<B> Previous:</B> <A NAME="tex2html1314" HREF="node79.html">Logging In And Out</A>
<BR> <P>
<H1><A NAME="SECTION00910000000000000000">Logins via terminals</A></H1>
<P>
Figure <A HREF="node80.html#figterminallogins">8.1</A> shows how logins happen
via terminals. First, <tt>init</tt><A NAME="2589"> </A> makes sure there is a
<tt>getty</tt><A NAME="2591"> </A> program for the terminal connection (or
console). <tt>getty</tt><A NAME="2593"> </A> listens at the terminal and waits for
the user to notify that he is ready to login in (this usually
means that the user must type something). When it notices a
user, <tt>getty</tt><A NAME="2595"> </A> outputs
a welcome message (stored in <tt>/etc/issue</tt><A NAME="2597"> </A>), and prompts for
the username, and finally runs the <tt>login</tt><A NAME="2599"> </A> program.
<tt>login</tt><A NAME="2601"> </A> gets the username as a parameter, and prompts the
user for the password. If these match, <tt>login</tt><A NAME="2603"> </A>
starts the shell configured for the user; else it just exits
and terminates the process (perhaps after giving the user
another chance at entering the username and password).
<tt>init</tt><A NAME="2605"> </A> notices that the
process terminated, and starts a new <tt>getty</tt><A NAME="2607"> </A> for the
terminal.
<P>
<P><A NAME="2586"> </A><A NAME="figterminallogins"> </A><IMG WIDTH=461 HEIGHT=734 ALIGN=BOTTOM ALT="figure2514" SRC="img13.gif"><BR>
<STRONG>Figure 8.1:</STRONG> Logins via terminals: the interaction of <tt>init</tt><A NAME="2609"> </A>, <tt>getty</tt><A NAME="2611"> </A>,
<tt>login</tt><A NAME="2613"> </A>, and the shell.<BR>
<P>
<P>
Note that the only new process is the one created by <tt>init</tt><A NAME="2615"> </A>
(using the <tt>fork</tt><A NAME="2617"> </A> system call);
<tt>getty</tt><A NAME="2619"> </A> and <tt>login</tt><A NAME="2621"> </A> only replace the program running
in the process (using the <tt>exec</tt><A NAME="2623"> </A> system call).
<P>
A separate program, for noticing the user, is needed for serial
lines, since it can be (and traditionally was) complicated to
notice when a terminal becomes active. <tt>getty</tt><A NAME="2625"> </A> also adapts
to the speed and other settings of the connection, which is
important especially for dial-in connections, where these
parameters may change from call to call.
<P>
There are several versions of <tt>getty</tt><A NAME="2627"> </A> and <tt>init</tt><A NAME="2629"> </A>
in use, all with their good and bad points. It is a good idea
to learn about the versions on your system, and also about the
other versions (you could use the Linux Software Map to search
them). If you don't have dial-in's, you probably don't have to
worry about <tt>getty</tt><A NAME="2631"> </A>, but <tt>init</tt><A NAME="2633"> </A> is still important.
<P>
<HR><A NAME="tex2html1321" HREF="node81.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="./next_motif.gif"></A> <A NAME="tex2html1319" HREF="node79.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="./up_motif.gif"></A> <A NAME="tex2html1313" HREF="node79.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="./previous_motif.gif"></A> <A NAME="tex2html1323" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="./contents_motif.gif"></A> <A NAME="tex2html1324" HREF="node114.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="./index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html1322" HREF="node81.html">Logins via the network</A>
<B>Up:</B> <A NAME="tex2html1320" HREF="node79.html">Logging In And Out</A>
<B> Previous:</B> <A NAME="tex2html1314" HREF="node79.html">Logging In And Out</A>
<P><ADDRESS>
<I>Lars Wirzenius <BR>
Sat Nov 15 02:32:11 EET 1997</I>
</ADDRESS>
</BODY>
</HTML>
|