summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKlaatu <klaatu@member.fsf.org>2012-06-23 22:04:36 -0400
committerKlaatu <klaatu@member.fsf.org>2012-06-23 22:04:36 -0400
commit7b00251e5638fc6b043ab25f94e6cef655c42566 (patch)
treeb3d41b79ba644950d2af0a46eb346187e8e62228
parentc6ce0009d5e53910afd2d5ea1fe357ffc6075fde (diff)
downloadslackbook-7b00251e5638fc6b043ab25f94e6cef655c42566.tar.xz
Beefed up pine and mutt in ch16
Added dual booting section in ch03 per TODO file
-rw-r--r--chapter_03.xml275
-rw-r--r--chapter_16.xml419
2 files changed, 664 insertions, 30 deletions
diff --git a/chapter_03.xml b/chapter_03.xml
index 4b70d0b..9368969 100644
--- a/chapter_03.xml
+++ b/chapter_03.xml
@@ -2,7 +2,7 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"/usr/share/xml/docbook/xml-dtd-4.5/docbookx.dtd">
-<chapter>
+<chapter id="ch_boot">
<title>Booting</title>
<para>
@@ -20,7 +20,7 @@ multiple operating systems, such as other Linux distributions or Microsoft
Windows.
</para>
-<section>
+<section id="boot_mkinitrd">
<title><application>mkinitrd</application></title>
<para>
@@ -120,7 +120,8 @@ explanation, check the manpage or run
argument.
</para>
-<screen><prompt>darkstar:~# </prompt><userinput>mkinitrd --help</userinput>
+<screen>
+<prompt>darkstar:~# </prompt><userinput>mkinitrd --help</userinput>
mkinitrd creates an initial ramdisk (actually an initramfs cpio+gzip
archive) used to load kernel modules that are needed to mount the
root filesystem, or other modules that might be needed before the
@@ -142,7 +143,8 @@ using the huge kernel, you can easily find this information with the
<filename>/proc/mounts</filename>.
</para>
-<screen><prompt>darkstar:~# </prompt><userinput>mount</userinput>
+<screen>
+<prompt>darkstar:~# </prompt><userinput>mount</userinput>
/dev/sda1 on / type ext4 (rw,barrier=1,data=ordered)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
@@ -227,7 +229,7 @@ mkinitrd -c -k 2.6.33.4 -f ext3 -r /dev/sda3 -m \
</section>
-<section>
+<section id="boot_lilo">
<title>LILO</title>
<para>
@@ -235,7 +237,7 @@ LILO is the Linux Loader and is currently the default boot loader
installed with Slackware Linux. If you've used other Linux
distributions before, you may be more familiar with GRUB. If you prefer
to use GRUB instead, you can easily find it in the
-<filename>extra/</filename> directory on one of your Slackware CDs.
+<filename>extra&#47;</filename> directory on one of your Slackware CDs.
However, since LILO is the default Slackware bootloader, we'll focus
exclusively on it.
</para>
@@ -375,7 +377,7 @@ other = /dev/sda3
For Linux operating systems like Slackware, the image line specifies
which kernel to boot. In this case, we're booting
<filename>/boot/vmlinuz-generic-2.6.29.4</filename>. The remaining
-sections are pretty self-explainatory. They tell LILO where to find the
+sections are pretty self-explanatory. They tell LILO where to find the
root filesystem, what initrd (if any) to use, and to initially mount
the root filesystem read-only. That initrd line is very important for
anyone running a generic kernel or using LVM or software RAID. It
@@ -407,6 +409,263 @@ should be just fine. In particular, the LBA32 addressing warning is
commonplace.
</para>
-</section>
+</section> <!-- closing lilo -->
+
+<section id="boot_dual">
+<title>Dual Booting</title>
+
+<para>
+ A bootloader (like LILO) is a very flexible thing, since it exists
+ only to determine which hard drive, partition, or even a specific
+ kernel on a partition to boot. This inherently suggests a choice
+ when booting, so the idea of having more than one operating system
+ on a computer comes very naturally to a LILO or GRUB user.
+</para>
+
+<para>
+ People &#34;dual boot&#34; for a number of reasons; some people want
+ to have a stable Slackware install on one partition or drive and a
+ development sandbox on another, other people might want to have
+ Slackware on one and another Linux or BSD distribution on another,
+ and still other people may have Slackware on one partition and a
+ proprietary operating system (for work or for that one application
+ that Linux simply cannot offer) on the other.
+</para>
+
+<para>
+ Dual booting should not be taken lightly, however, since it usually
+ means that you'll now have two different operating systems
+ attempting to manage the bootloader. If you dual boot, the
+ likelihood of one OS over-writing or updating the bootloader entries
+ without your direct intervention is great; if this happens, you'll
+ have to modify GRUB or LILO manually so you can get into each OS.
+</para>
+
+<para>
+ There are two ways to dual (or multi) boot; you can put each
+ operating system on its own hard drive (common on a desktop, with
+ their luxury of having more than one drive bay) or each operating
+ system on its own partition (common on a laptop where only one
+ physical drive is present).
+</para>
+
+<section id="boot_dual_partition">
+<title>Dual Booting with Partitions</title>
+
+<para>
+ In order to set up a dual-boot system with each operating system on
+ its own partition, you must first create partitions. This is easiest
+ if done prior to installing the first operating system, in which
+ case it's a simple case of pre-planning and carving up your hard
+ drive as you feel necessary. See <xref linkend="install_part"/> for
+ information on using the <application>fdisk</application> or
+ <application>cfdisk</application> partitioning applications.
+</para>
+
+<important>
+ <para>
+ If you're dual booting two Linux distributions, it is inadvisable
+ to attempt to share a &#47;home directory between the
+ systems. While it is technically possible, doing so will increase
+ the chance of your personal configurations from becoming mauled by
+ competing desktop environments or versions.
+ </para>
+
+ <para>
+ It is, however, safe to use a common swap partition.
+ </para>
+</important>
+
+<para>
+ You should partition your drive into at least three parts:
+</para>
+
+<itemizedlist>
+ <listitem>
+ <para>
+ One partition for Slackware
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ One partition for the secondary OS
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ One partition for swap
+ </para>
+ </listitem>
+</itemizedlist>
+
+<para>
+ First, install Slackware Linux onto the first partition of the hard
+ drive as described in <xref linkend="ch_install"/>.
+</para>
+
+<para>
+ After Slackware has been installed, booted, and you've confirmed
+ that everything works as expected, then reboot to the installer for
+ the second OS. This OS will invariably offer to utilize the entire
+ drive; you obviously do <emphasis>not</emphasis> want to do that, so
+ constrain it to only the second partition. Furthermore, the OS will
+ attempt to install a boot loader to the beginning of the hard drive,
+ overwriting LILO.
+</para>
+
+<para>
+ You have a few possible courses of action with regards to the boot
+ loader:
+</para>
+
+<variablelist>
+ <title>
+ Possible Boot Loader Scenarios
+ </title>
+
+<varlistentry>
+ <term>
+ If the secondary OS is Linux, disallow it from installing a boot
+ manager.
+ </term>
+
+ <listitem>
+ <para>
+ If you're dual booting to another Linux distribution, the
+ installer of that distribution usually asks if you want a boot
+ loader installed. You're certainly free to not install a boot
+ manager for it at all, and manually manage both Slackware and
+ the other distribution with LILO.
+ </para>
+
+ <para>
+ Depending on the distribution, you might be editing LILO more
+ frequently than you would if you were only running Slackware;
+ some distributions are notorious for frequent kernel updates,
+ meaning that you'll need to edit LILO to reflect the new
+ configuration after such an update. But if you didn't want to
+ edit configuration files every now and again, you probably
+ wouldn't have chosen Slackware.
+ </para>
+ </listitem>
+</varlistentry>
+
+<varlistentry>
+ <term>
+ If the secondary OS is Linux, let it overwrite LILO with GRUB.
+ </term>
+
+ <listitem>
+ <para>
+ If you're dual booting to another Linux distribution, you are
+ perfectly capable of just using GRUB rather than LILO, or
+ install Slackware last and use LILO for both. Both LILO and GRUB
+ have very good auto-detection features, so whichever one gets
+ installed last should pick up the other distribution's presence
+ and make an entry for it.
+ </para>
+
+ <para>
+ Since other distributions often attempt to auto-update their
+ GRUB menus, there is always the chance that during an update
+ something will become maligned and you suddenly find you can't
+ boot into Slackware. If this happens, don't panic; just boot
+ into the other Linux partition and manually edit GRUB so that it
+ points to the correct partition, kernel, and initrd (if
+ applicable) for Slackware in its menu.
+ </para>
+ </listitem>
+</varlistentry>
+
+<varlistentry>
+ <term>
+ Allow the secondary OS to overwrite LILO and go back later to
+ manually re-install and re-configure LILO.
+ </term>
+ <listitem>
+ <para>
+ This is not a bad choice, especially when Windows is the
+ secondary OS, but potential pitfalls are that when Windows
+ updates itself, it may attempt to overwrite the MBR (master boot record)
+ again, and you'll have to re-install LILO manually again.
+ </para>
+
+ <para>
+ To re-establish LILO after another OS has erased it, you can
+ boot from your Slackware install media and enter the setup
+ stage. Do <emphasis>not</emphasis> re-partition your drive or
+ re-install Slackware; skip immediately to <xref
+ linkend="install_setup_config"/>.
+ </para>
+
+ <para>
+ Even when using the &#34;simple&#34; option to install, LILO
+ should detect both operating systems and automatically configure
+ a sensible menu for you. If it fails, then add the entries
+ yourself.
+ </para>
+
+<!-- i do not have access to windows and cannot confirm this
+ <para>
+ An entry in LILO for a Windows partition might look something
+ like this:
+ </para>
+
+ <programlisting>
+ other = /dev/sda2
+ label = non-linux
+ </programlisting>
+-->
+ </listitem>
+</varlistentry>
+
+</variablelist>
+
+</section> <!-- closing dual parts -->
+
+<section id="boot_dual_drive">
+ <title>Dual Booting from Hard Drives</title>
+
+ <para>
+ Dual booting between different physical hard drives is often
+ easier than with partitions since the computer's BIOS or EFI
+ almost invariably has a boot device chooser that allows you to
+ interrupt the boot process immediately after POST and choose what
+ drive should get priority.
+ </para>
+
+ <para>
+ The snag key to enter the boot picker is different for each brand
+ of motherboard; consult the motherboard's manual or read the
+ splash screen to find out what your computer requires. Typical
+ keys are <keycap>F1</keycap>, <keycap>F12</keycap>,
+ <keycap>DEL</keycap>. For Apple computers, it is always the
+ <keycap>Option</keycap> (Alt) key.
+ </para>
+
+ <para>
+ If you manage the boot priority via BIOS or EFI, then each boot
+ loader on each hard drive is only aware of its own drive and will
+ never interfere with one another. This is rather contrary to what
+ a boot loader is designed to do but can be a useful workaround
+ when dealing with proprietary operating systems which insist upon
+ being the only OS on the system, to the detriment of the user's
+ preference.
+ </para>
+
+ <para>
+ If you don't have the luxury of having multiple internal hard
+ drives and don't feel comfortable juggling another partition and
+ OS on your computer, you might also consider using a bootable USB thumbdrive or even a
+ virtual machine to give you access to another OS. Both of these
+ options is outside the scope of this book, but they've commonplace
+ and might be the right choice for you, depending on your needs.
+ </para>
+
+</section> <!-- closing dual drives -->
+
+</section> <!-- closing dual boot -->
</chapter>
diff --git a/chapter_16.xml b/chapter_16.xml
index 484ede3..97a0fee 100644
--- a/chapter_16.xml
+++ b/chapter_16.xml
@@ -13,7 +13,7 @@ chapter is for you.
</para>
<section id="network-utils_network-diagnostics">
-<title>Network Diagnostic Tools</title>
+ <title>Network Diagnostic Tools</title>
<para>
Slackware Linux includes a great many networking tools for
@@ -158,7 +158,7 @@ every Linux, UNIX, and BSD distribution today makes use of OpenSSH, or
commonly used network tools today and makes use of the strongest
cryptographic techniques. <application>ssh</application> has many
features, configuration options, and neat hacks, enough to fill its own
-book, so we'll only go into the basics here. Simply run
+book, so we'll only go into the basics here. Simply run
<application>ssh</application> with the user name and the host and
you'll be connected to it quickly and safely. If this is the first time
you are connecting to this computer, <application>ssh</application>
@@ -169,7 +169,8 @@ because it is possible that some one is attempting to hijack the
connection using what is known as a man-in-the-middle attack.
</para>
-<screen><prompt>darkstar:~&#35; </prompt><userinput>ssh alan@slackware.com</userinput>
+<screen>
+<prompt>darkstar:~&#35; </prompt><userinput>ssh alan@slackware.com</userinput>
alan@slackware.com's password: <userinput>secret</userinput>
<prompt>alan@slackware.com:~&#36; </prompt>
</screen>
@@ -180,10 +181,13 @@ If you leave off the username part, <application>ssh</application> will
use your current username when establishing the connection.
</para>
+<!-- add stuff about ssh keys -->
+<!-- add stuff about scp -->
+
</section>
-<section>
-<title>tcpdump</title>
+<section id="network-utils_tcpdump">
+ <title>tcpdump</title>
<para>
So far all the tools we've looked at have focused on making connections
@@ -232,6 +236,9 @@ each one individually, <application>telnet</application> to each port
you're interested in, and note every detail, but that's very tedious
and time consuming. A much easier alternative is to use a port scanner,
and <application>nmap</application>(1) is just the tool for the job.
+</para>
+
+<para>
<application>nmap</application> is capable of scanning TCP and UDP
ports, determining the operating system of a network device, probing
each located service to determine its specific type, and much much
@@ -301,7 +308,7 @@ slackware.com mail is handled by 1 mail-mx.cwo.com.
</section>
-<section>
+<section id="network-utils_dig">
<title>dig</title>
<para>
@@ -353,7 +360,8 @@ In this case we looked for an "A" record which returned an IPv4 address.
</section>
-<section><title>finger</title>
+<section id="network-utils_finger">
+<title>finger</title>
<para>
<application>finger</application>(1) isn't exactly a network diagnostic
@@ -387,7 +395,7 @@ No Plan.
</section>
<section id="network-utils_web-browsers">
-<title>Web Browsers</title>
+ <title>Web Browsers</title>
<para>
Slackware includes a variety of web browsers. If you're using a
@@ -436,7 +444,8 @@ formats web pages better.
</section>
-<section><title>wget</title>
+<section id="network-utils_wget">
+ <title>wget</title>
<para>
Unlike the other browsers we've looked at,
@@ -477,7 +486,18 @@ Length: 75306 (74K)
<section id="network-utils_mail-clients">
<title>Mail Clients</title>
-<section><title>pine</title>
+<para>
+Slackware also includes a variety of email clients. If you're using a
+graphical desktop, you'll find <application>Thunderbird</application>,
+<application>Kmail</application>, <application>sylpheed</application>
+and others. As with web browsers, there are also applications that
+function within the shell. Once you start using an email client in the
+console, you may find yourself not wanting to use anything else; the
+flexibility and configurability can be addicting.
+</para>
+
+<section id="network-utils_pine">
+<title>pine</title>
<para>
<application>pine</application> is one of the oldest command-line
@@ -494,7 +514,7 @@ pine-clone distributed with Slackware, was born.
To start using <application>alpine</application>,
simply type <application>pine</application> at the command line.
Using it is very simple due to its menu-driven system as well as the
-command referance neatly located at the bottom of the screen. See for
+command reference neatly located at the bottom of the screen. See for
yourself&#58;
</para>
@@ -524,6 +544,106 @@ Messages
O OTHER CMDS > [ListFldrs] N NextCmd K KBLock
</screen>
+ <para>
+ Before configuring any mail client, you should check the
+ documentation of your mail server to gather all of the pertinent
+ information about what protocols and security measures your mail
+ service uses. This will help you configure
+ <application>pine</application> correctly.
+</para>
+
+ <para>
+ To start configuring <application>pine</application>, you should be
+ able to enter the [S]ettings menu, and then the [C]onfig
+ screen. There are about a hundred different options, but the most
+ common and most important ones would be your Personal Name, Inbox
+ Path, and SMTP Server.
+</para>
+
+<variablelist>
+ <title>Pine Settings</title>
+
+ <varlistentry>
+ <term>
+ Personal Name
+ </term>
+ <listitem>
+ <para>
+ The name you wish people to see in the "From" field of your
+ emails.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ Inbox Path
+ </term>
+
+ <listitem>
+ <para>
+ Your mail server. The server itself is often something like
+ mail.example.com (although it may not be; check with your
+ host to be sure), but if that server requires login information then you
+ may need to set it to something like alan@mail.slackermedia.info
+ or similar.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>SMTP Server</term>
+ <listitem>
+ <para>
+ The server through which you will send your email; often this
+ is smtp.example.com or outgoing.example.com or some variation
+ on that theme. It often requires authentication, but you
+ should be prompted for this in
+ <application>pine</application> when sending mail.
+ </para>
+ </listitem>
+ </varlistentry>
+</variablelist>
+
+<para>
+ A sample configuration might look a little something like this:
+</para>
+
+<table>
+ <title>Sample Pine Configuration</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>Personal Name</entry>
+ <entry>Alan Hicks</entry>
+ </row>
+ <row>
+ <entry>SMTP Server</entry>
+ <entry>smtp.lizella.net</entry>
+ </row>
+ <row>
+ <entry>Inbox Path</entry>
+ <entry>{imap.lizella.net/user=alan@lizella.net}inbox</entry>
+ </row>
+ <row>
+ <entry>Warn if Blank Subject</entry>
+ <entry>X</entry>
+ </row>
+ <row>
+ <entry>Sort Key: Arrival</entry>
+ <entry>X</entry>
+ </row>
+ </tbody>
+ </tgroup>
+</table>
+
+<para>
+ And so on. Once you have it configured according to your mail
+ server&#39;s settings, you will be able to navigate the application from
+ the main menu. It&#39;s quite intuitive, with a persistent list of
+ keyboard shortcuts at the bottom of the screen.
+</para>
+
</section>
<section id="network-utils_mutt">
@@ -535,7 +655,7 @@ want more control. Some people want a fully-configurable mail client
with plugin support and a no-nonsense attitude. Those people use
<application>mutt</application>(1). <application>mutt</application>
isn't as user friendly as <application>pine</application>, but makes up
-for it with power. You won't find the user-friendly command referance
+for it with power. You won't find the user-friendly command reference
at the bottom of the screen, <application>mutt</application> uses every
last inch of real-estate for mail processing duty. It's feature support
is extensive: threaded displays are no problem for the mighty
@@ -562,14 +682,266 @@ for that, muttrc(5). You might want to read up on it.
3185 N Jan 11 Robby Workman (3.4K) └─>
3186 N Jan 12 SlackBuilds@cat (3.4K) └─>
3187 N Jan 11 Robby Workman (4.5K) └─>
-3188 N Jan 12 Robby Workman (2.3K) [Slackbuilds-users] Unavailability of mai
-3189 N Jan 13 Mr. B-o-B (3.7K) └─>
-3190 N Jan 13 Josiah Boothby (3.2K) [Slackbuilds-users] Ted's Word Processor
-3191 N Jan 14 Adam Swift (7.4K) [Slackbuilds-users] Web submission failur
-3192 N Jan 14 Rob McGee (3.5K) └─>
+3188 D Jan 12 Klaatu (3.5K) [Slackbuilds-users] LiVES updates
+3189 N Jan 12 Robby Workman (2.3K) [Slackbuilds-users] Unavailability of mai
+3190 N Jan 13 Mr. B-o-B (3.7K) └─>
+3191 N Jan 13 Josiah Boothby (3.2K) [Slackbuilds-users] Ted's Word Processor
+3192 N Jan 14 Adam Swift (7.4K) [Slackbuilds-users] Web submission failur
+3193 N Jan 14 Rob McGee (3.5K) └─>
</screen>
-</section>
+<para>
+ Using <application>mutt</application> is unique because it is by
+ nature a Mail User Agent (MUA), meaning its true purpose is to read
+ and sort email. This was its only job originally, although some
+ additional features such as retrieving mail via POP3 and even very
+ basic transfering messages via SMTP have snuck into the application.
+</para>
+
+<para>
+ As is so often the case with robust console-based applications, the
+ configuration options are myriad, and there is no &#34;right&#34; or
+ &#34;wrong&#34; way of using <application>mutt</application> as long
+ as it does what you want it to do. Here is a simple example of a
+ system utilizing <application>mutt</application>, with a toolchain
+ consisting of:
+</para>
+
+<itemizedlist>
+ <listitem>
+ <para>
+ <application>fetchmail</application> to pull mail from your mail server
+ via POP3
+ </para>
+</listitem>
+
+ <listitem>
+ <para>
+ <application>procmail</application> to sort the mail as needed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <application>mutt</application> to read, sort, and send email.
+ </para>
+</listitem>
+
+ <listitem>
+ <para>
+ <command>formail</command> to re-format your mail if needed
+ &#40;depending on your mail server settings&#41;
+ </para>
+</listitem>
+</itemizedlist>
+
+<para>
+ <application>fetchmail</application> is a simple application that exists
+ only to pull mail from mail servers and copy those email messages to
+ your local hard drive. The configuration is fairly simple:
+</para>
+
+<screen>
+ <prompt>darkstar:~&#36; </prompt> &#39;poll pop.slackermedia.info with proto pop3: user
+"klaatu@slackermedia.info" there has password "secretpassword" is klaatu
+here and wants mds "/usr/bin/procmail"&#39; &#62;&#62; ~&#47;.fetchmailrc
+</screen>
+
+<variablelist>
+<title>Fetchmail Configuration Explained</title>
+
+<varlistentry>
+ <term>poll</term>
+ <listitem>
+ <para>
+ Defines the mail server to check
+ </para>
+ </listitem>
+</varlistentry>
+
+<varlistentry>
+ <term>with proto</term>
+ <listitem>
+ <para>
+ Defines the protocol used; in this case, POP3.
+ </para>
+ </listitem>
+</varlistentry>
+
+<varlistentry>
+ <term>user</term>
+ <listitem>
+ <para>
+ Your email username. Sometimes this is just the string in front
+ of the @ at symbol, othertimes it is your whole email address.
+ Again, see your provider&#39;s documentation to find out what
+ you should be using.
+ </para>
+ </listitem>
+</varlistentry>
+
+<varlistentry>
+ <term>there has password</term>
+
+ <listitem>
+ <para>
+ Your email password. This is entered as plaintext into your
+ config file, but since this is in your home directory, it is only
+ readable by you.
+ </para>
+ </listitem>
+</varlistentry>
+
+<varlistentry>
+ <term>is username here</term>
+ <listitem>
+ <para>
+ Defines which user on your local computer this email account
+ actually belongs to. For instance, if my email account is
+ notklaatu@slackermedia.info but my username on my Slackware box
+ is klaatu, then obviously there would be no way for
+ <application>fetchmail</application> to know who
+ notklaatu@slackermedia.info is. This defines it.
+ </para>
+ </listitem>
+</varlistentry>
+
+<varlistentry>
+ <term>and wants mda &#34;&#47;usr&#47;bin&#47;procmail&#34;</term>
+
+ <listitem>
+ <para>
+ Tells <application>fetchmail</application> what application will
+ be sorting the email once it is pulled from the mail server.
+ <application>Procmail</application> ships with Slackware, so this
+ will probably not change for you and is not dependent upon your
+ mail server whatsoever.
+ </para>
+ </listitem>
+</varlistentry>
+</variablelist>
+
+<para>
+ Now that fetchmail is configured, it will successfully pull your
+ email from the server. But what will your computer do with all of
+ that mail? This is the job of <application>procmail</application>.
+</para>
+
+<para>
+ The settings for <application>procmail</application> can be stored
+ in ~&#47;.procmailrc and is also fairly simple; for example:
+</para>
+
+<screen>
+ PATH=/usr/bin
+ MAILDIR=$HOME/Mail
+ DEFAULT=$MAILDIR/Inbox
+ LOGFILE=$MAILDIR/logs
+</screen>
+
+<para>
+ Now <application>procmail</application> is configured, so your mail
+ will be sent to the right place. There is much more you can do with
+ <application>procmail</application> so feel free to investigate its
+ many filtering functions (or &#34;recipes&#34;) later, once you have
+ everything working.
+</para>
+
+<para>
+ At this point, your email will be pulled from the server by
+ <application>fetchmail</application> and sorted on your local system
+ by way of <application>procmail</application>. You need to
+ configure <application>mutt</application> so that it knows where to
+ find your email messages so that you can view them.
+</para>
+
+<para>
+ Because <application>mutt</application> is such an extensible program, it&#39;s
+ a good idea to make a folder for its configuration file. Your
+ initial configuration will be frightfully simple, but if you ever
+ look for new configurations of mutt you might be happy to have a
+ whole folder to play around in.
+</para>
+
+ <screen>
+ <prompt>darkstar:~&#36; </prompt> <command>cat</command> ~&#47;.mutt&#47;.muttrc
+ set realname=&#34;klaatu&#34;
+ set from=&#34;notklaatu@slackermedia.info&#34;
+ set spoolfile=&#47;home&#47;klaatu&#47;Mail&#47;Inbox
+ set mbox=&#47;home&#47;klaatu&#47;Mail&#47;mbox
+ set record=&#47;home&#47;klaatu&#47;Mail&#47;sent
+ set postponed=&#47;home&#47;klaatu&#47;Mail&#47;postponed
+ set sort=reverse-date
+ set editor=emacs
+ set smtp_url=&#34;smtp:&#47;&#47;notklaatu:secretpassword@smtp.slackermedia.info:465&#34;
+ </screen>
+
+<para>
+ In this sample configuration, the <varname>spoolfile</varname>
+ defines the incoming messages that you have not read yet &#40;you
+ might recognize it as the end destination for
+ <application>procmail</application>&#41;, while <varname>mbox</varname>
+ defines where mail that you have read and responded to will be
+ stored. All other settings are self-explanatory, and all have been
+ drawn directly from the muttrc man page.
+</para>
+
+<note>
+<para>
+ If your mail server delivers your email in a format that
+ <command>mutt</command> cannot understand, use the
+ <application>formail</application> mailbox converter, a part of the
+ <application>procmail</application> distribution. For example:
+</para>
+
+<screen>
+ <prompt>darkstar:~&#36; </prompt> formail -ds &lt; ~&#47;Mail&#47;Inbox &#62;&#62; ~&#47;Mail&#47;Muttbox
+ </screen>
+</note>
+
+
+<para>
+ The commands used to navigate around in <application>mutt</application> are highly
+ customizable but the defaults can be listed by typing
+ <keycap>?</keycap>.
+</para>
+
+<section id="network-utils_ssl">
+ <title>Adding SSL Support</title>
+
+ <para>
+ If your mail server supports SSL then you can and should use SSL
+ for better security. Most graphical clients have common SSL
+ certificates built into them; <application>mutt</application> does
+ not but it's trivial to configure.
+ </para>
+
+ <para>
+ Download an SSL trust certificate &#40;the most common set is from
+ Thawte&#41; and place it in your Mutt or Mail folder, and list it
+ as a <varname>certificate_file</varname> in your
+ <filename>.muttrc</filename> file. If your mail server is not using
+ Thawte, then they may be using either another SSL certificate
+ authority or they may be their own certificate authority, but
+ if an unknown certificate is encountered,
+ <application>mutt</application> will prompt you to accept it (or
+ not). If you do accept it, the certificate can be saved into
+ this certificate file.
+ </para>
+
+ <para>
+ To obtain the Thawte certificate:
+ </para>
+
+ <screen>
+ bash$ wget
+ http://www.thawte.com/roots/thawte_Premium_Server_CA.pem -P
+ ~/Mail/
+ </screen>
+
+</section> <!-- closing SSL -->
+
+</section> <!-- closing mutt -->
<section id="network-utils_mailx">
<title>mailx</title>
@@ -708,7 +1080,8 @@ downloaded in source code or binary form via FTP, so knowing how to
retrieve this information is a handy skill.
</para>
-<section><title>ftp</title>
+<section id="network-utils_bsd-ftp">
+<title>ftp</title>
<para>
The simplest FTP client included with Slackware is named simply,
@@ -753,7 +1126,8 @@ ftp> <userinput>bye</userinput>
</section>
-<section><title>ncftp</title>
+<section id="network-utils_ncftp">
+<title>ncftp</title>
<para>
<application>ncftp</application>(1) (pronounced nick-f-t-p), is a more
@@ -788,7 +1162,8 @@ ncftp ...ware/slackware-current > <userinput>bye</userinput>
</section>
-<section><title>lftp</title>
+<section id="network-utils_lftp">
+<title>lftp</title>
<para>
The last client we're going to look at is
@@ -815,7 +1190,7 @@ lftp ftp.osuosl.org:/pub/slackware/slackware-current> <userinput>bye</userinput>
</section>
-<section>
+<section id="network-utils_rsync">
<title>rsync</title>
<para>