<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"  [
<!ENTITY systraq "<productname>systraq</productname>">
<!ENTITY % man.ent SYSTEM "man.ent">
%man.ent;
]>
<!-- vim:syntax=xml
See http://docbook.org/tdg/en/html/part2.html and
http://docbook.org/tdg/en/html/ref-elements.html for a list of valid
reference entries
-->
<article id="manual">
 <articleinfo>
    <title>The systraq Manual</title>
    <subtitle>&month; &year;</subtitle>
    <author>
        <firstname>Joost</firstname><surname>van Baal-Ilic</surname>
    </author>
    <copyright>
      <year>2001, 2002, 2003, 2004, 2005, 2016</year>
      <holder>Joost van Baal-Ilic</holder>
    </copyright>
    <legalnotice>
        <para>
            This document is free software; you can redistribute it and/or
            modify it under the terms of the GNU General Public License as
            published by the Free Software Foundation; either version 2 of
            the License, or (at your option) any later version.
        </para>
        <para>
            This is distributed in the hope that it will be useful,
            but <emphasis>without any warranty</emphasis>; without even the
            implied warranty of <emphasis>merchantability</emphasis> or
            <emphasis>fitness for a particular purpose</emphasis>.  See the
            GNU General Public License for more details.
        </para>
        <para>
            You should have received a copy of the GNU General Public License
            along with this manual (see COPYING); if not, check with
            <ulink url="http://www.gnu.org/copyleft/gpl.html">
            http://www.gnu.org/copyleft/gpl.html</ulink> or write to the Free
            Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
            MA 02111, USA.
        </para>
    </legalnotice>

    <revhistory>
      <revision>
        <revnumber>&version;</revnumber>
        &date;
      </revision>
    </revhistory>
  </articleinfo>

  <section>
    <title>Introduction</title>
    <section>
      <title>What is it?</title>
      <para>

systraq Is a small set of simple scripts monitoring your system, and warning
you when system files change.

      </para>
      <para>

systraq Daily sends you an email listing the state of your system.
Furthermore, if critical files have changed, you'll get an email within a
shorter notice.  It consists of few very small shell scripts.  It's written for
Debian GNU/Linux, but very likely runs on any Unix like operating system.
(Examples and default configuration will likely be somewhat Debian centered,
'though.)

      </para>
      <para>

It can help you keeping your system secure.  However, in case you're planning
to use systraq on a multi user system, make sure you really want to do the
monitoring this script offers: it might not comply with your site's privacy
policy.  Getting informed when users' config file change might be too
intrusive.

      </para>
    </section>
    <section>
      <title>Why?</title>
      <para>

In the early 2000s, I had some *BSD boxes, which regularly mail stuff like:

        <screen>
<![CDATA[
 checking setuid files and devices:

 checking for uids of 0:
 root 0
 toor 0

 checking for passwordless accounts:

 hille.mdcc.cx login failures:
 Oct 11 11:31:52 hille login: 1 LOGIN FAILURE ON ttyv0
 Oct 11 11:31:52 hille login: 1 LOGIN FAILURE ON ttyv0, .^[^[^[[MS

 hille.mdcc.cx refused connections:

 Disk status:
 Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
 /dev/ad0s1a     39647    27927     8549    77%    /
 /dev/ad0s1f   1016303   857921    77078    92%    /usr
 /dev/ad0s1g   7026508  6219148   245240    96%    /usr/home
 /dev/ad0s1e     19815     6712    11518    37%    /var
 procfs              4        4        0   100%    /proc

 Network interface status:
 Name  Mtu   Network       Address            Ipkts Ierrs    Opkts Oerrs  Coll
 lp0*  1500  <Link#1>                             0     0        0     0     0
 ed0   1500  <Link#2>    00:00:e8:6b:a9:3b   651828  1177  4029190     4 36522

 ======
 /etc/sshd_config diffs (OLD < > NEW)
 ======
 1c1,11
 < #     $OpenBSD: mailer.conf,v 1.3 2000/04/06 18:24:19 millert Exp $
 ---
 > # This is ssh server systemwide configuration file.
 >
 > Port 22
 > #Protocol 2,1
]]>
        </screen>

On OpenBSD boxes, the shellscripts /etc/daily, /etc/weekly and /etc/monthly
kick off the process to generate these status mails.  The shellscript
/etc/security is called, as well as the <ulink
url="http://www.tac.eu.org/cgi-bin/man-cgi?mtree+8+NetBSD-1.5.1">mtree(8)</ulink>
command.
    </para>
    <para>

I very much like this system, taking care of the automatic monitoring of my
system.  I run GNU/Linux also, these boxes lacked such a system (tripwire is too
heavyweigth for my demands.)  This system seemed not very portable to
GNU/Linux, unfortunately.  (Which is another way of stating: I'm too lazy to
port the complete system.)

    </para>
    <para>

<ulink url="http://xidus.xidus.net/">Jeremy Weatherford</ulink> wrote <ulink
url="http://filetraq.xidus.net/">FileTraq</ulink> for his Red Hat Linux box.
This small tool could be regarded as a first estimate to what I wanted.  Jeremy
runs it as root, I believe.  I want to avoid that as much as possible.  I do
want to monitor files like /etc/shadow, but I do not want to get the diff
emailed when these change.  I <emphasis>do</emphasis> want to get a notice if
such a file changes.  <ulink url="http://lameter.com/">Christoph
Lameter</ulink>'s <ulink
url="http://packages.debian.org/stable/admin/debsums.html">debsums</ulink> is a
tool, for monitoring files installed from Debian packages, which has
functionality like this.  On Debian systems, there's checksecurity(8) in
the cron package, which monitors permissions on device files.

    </para>
    <para>

So, I mixed ideas of the BSD 'daily run output' style emails with FileTraq and
some other tools.  That's how systraq came to be.

      </para>
    </section>
  </section>

  <section>
    <title>Installation</title>

    <section>
      <title>Requirements</title>
      <para>

You might need the GNU version of utilities like <command>cut</command> and
<command>ls</command>: I've only tested sytraq on a GNU/Linux system.  The
systraq tool works nice with the Debian debsums package; however, systraq is
useful too on systems lacking this package.

      </para>
      <para>

You need <ulink url="http://xidus.xidus.net/">Jeremy Weatherford's</ulink>
<ulink url="http://filetraq.xidus.net/">FileTraq</ulink>.  However,
beware!  Jeremy no longer seems to maintain FileTraq.  You'll need an up to
date version; the Debian package filetraq >= 0.2-10 by Sergio Talens-Oliag is
fine.
<!-- (to be sure Debian bug &num;251010 is fixed). -->
If you are on a Debian system,
you know how to get this.  If you are on another system, you can get <ulink
url='ftp://ftp.debian.org/debian/pool/main/f/filetraq/'> the Debian filetraq
version from the master ftp site</ulink> or from <ulink
url='http://www.debian.org/mirror/list'>any other mirror</ulink>.  Be sure to
at least get the files <filename>filetraq_0.2.orig.tar.gz</filename> and
<filename>filetraq_0.2-10.diff.gz</filename> (or a later version).  You can
apply the diff with any <command>patch</command>.

      </para>
    </section>

    <section>
      <title>Configure the package (and optionally rebuild documentation)</title>
      <para>

Run
        <screen>
 $ ./configure
 $ make
        </screen>

This will configure the package (you might want to pass some arguments to
<command>./configure</command>, see the <filename>INSTALL</filename> file).
You won't need typesetting tools: the typesetted documentation is shipped with
the tarball.  If you want to hack on the documentation, you'll need to have the
documentation build tools installed.  After editing documentation sources, just
running <command>./configure</command> and <command>make</command> will be
enough to get typesetting from the DocBook XML sources done.

      </para>
    </section>
    <section>
      <title>Install scripts and documentation</title>
      <para>

(If you're upgrading from an old systraq installation, back up your
configuration files in &etcpath; and run

        <screen>
 # make uninstall
        </screen>

from within your old unpacked tarball.)

Run

        <screen>
 # make install
        </screen>

This will install <filename>st_snapshot</filename>,
<filename>st_snapshot.hourly</filename> and <filename>systraq</filename> in
&sbinpath;.  Furthermore, it will install documentation in &docpath;.  (Sample)
configuration files will get installed in &etcpath; and &examplepath;.  Helper
scripts will be installed in &libexecpath;.

      </para>
    </section>
    <section>
      <title>User account</title>

      <para>
Create a dedicated systraq user account. E.g.
        <screen>
# adduser --system --home &homepath; --disabled-password --force-badname _systraq
        </screen>

This user will read worldreadable files, and write files under &statepath;.
Cronjobs will get run as this user, you might want to create a
<filename>~_systraq/.forward</filename> (or whatever your MTA uses), to get
these job's output in your mailbox.

      </para>
    </section>
    <section>
      <title>Set up configuration files</title>
      <section>
        <title>Introduction</title>
        <para>

Example configuration files are distributed with this manual.  (On Debian
systems, the examples could be used as reasonable defaults, except for the
filetraq.conf file, which needs to be generated for your particular system.)
All configuration files are line oriented, lines with a leading &num; are
ignored.  We give some descriptions here.

        </para>
      </section>
      <section>
        <title>filetraq.conf</title>
        <para>

The files listed in <filename>&etcpathraw;/filetraq.conf</filename> will be
checked by <command>filetraq</command> for changes in content every half hour.
Diff's will be emailed to the administrator.  The files
<filename>snapshot_pub.stat</filename> and
<filename>snapshot_root.stat</filename> should be listed here, as well as
<filename>systraq.sums</filename> (all these files reside in &statepath;).
It is advisable to also list every worldreadable file under <filename
class="directory">/etc/</filename> (and possibly <filename
class="directory">/usr/local/etc/</filename>) here.  You also might like to
list each user's <filename>~/.ssh/authorized_keys</filename> here.

        </para>
        <para>

All files listed in <filename>filetraq.conf</filename> should exist on your
system, and should be worldreadable.  (You can monitor non-world readable files
in <filename class="directory">/etc/</filename> by adding them to
<filename>snapshot_root.list</filename>).

        </para>
        <para>

You could create <filename>filetraq.conf</filename> using this Makefile:

        <screen>
filetraq.main.conf:
        echo '# $@: automatically generated' > $@
        find /etc /home/*/.ssh/authorized_keys* -perm -a+r -type f | \
          sort >> $@

filetraq.conf: filetraq.main.conf filetraq.tail.conf
        echo '# $@: generated from $^' | \
          cat - filetraq.main.conf filetraq.tail.conf > $@

.PHONY: filetraq.main.conf
        </screen>

where filetraq.tail.conf is
        <screen>
#
&etcpathraw;/snapshot_pub.list
&etcpathraw;/snapshot_pub.homelist
&etcpathraw;/snapshot_root.list
&etcpathraw;/snapshot_root.homelist
&etcpathraw;/filetraq.conf
#
&statepathraw;/snapshot_pub.stat
&statepathraw;/snapshot_root.stat
&statepathraw;/systraq.sums
#
          </screen>

; that might get something useful, as a starter.  Be sure to inspect
<filename>&examplepathraw;/filetraq.conf</filename> too.

        </para>
        <para>

You could install the <filename>Makefile</filename> in &etcpath;.  


<!-- In case
you're using <ulink url='http://mdcc.cx/caspar'>caspar</ulink> to install your
<filename>filetraq.tail.conf</filename>, you could use something like this:
<screen>
csp_TABOOFILES_SKIP = Makefile
csp_TABOOFILES_ADD = GNUmakefile
csp_SCPDIR = /etc/systraq/
csp_SUH = root@remote.example.com
load:
        ssh $(csp_SUH) "su -s /bin/sh -c \"make -C $(csp_SCPDIR)\" _systraq"
</screen>
as the file GNUmakefile in your casparized tree.  -->

        </para>
        <para>

If you don't like filetraq's default diff style, but, like me, prefer unified
diff, do

          <screen>
# rm -f /etc/default/filetraq
# ln -s &etcpathraw;/filetraq.default /etc/default/filetraq
          </screen>

        </para>
      </section>
      <section>
        <title>st_snapshots's file lists</title>
        <para>

Daily, <command>st_snapshot</command> will check all files as listed in its
configuration files, aka listfiles.  These listfiles are
<filename>&etcpathraw;/snapshot_{pub,root}.list</filename> and
<filename>&etcpathraw;/snapshot_{pub,root}.homelist</filename>.  Example
versions of these files are installed in &examplepath; when running
<command>make install</command>.  The names of these files are given as the two
arguments of <command>st_snapshot</command>.

        </para>
        <para>

<filename>snapshot_pub.list</filename> Should contain all world readable files
for which we want to monitor existence, ownership, permissions and changes in
content.  It should contain
<filename>&statepathraw;/systraq.sums</filename> too.
<filename>snapshot_root.list</filename> should contain all files which are not
world readable, we want to monitor.
<filename>snapshot_{pub,root}.homelist</filename> should contain files we
expect to find in homedirectories of users.  All users homedirectories are
scanned for files listed in these two listfiles.  Think of files like shell
startup scripts and stuff in <filename class="directory">~/.ssh/</filename> and
<filename>~/.rhosts</filename>.  You might want to add
<filename>.gnupg/revoke.asc</filename> and
<filename>.gnupg/secring.gpg</filename> too.

        </para>
        <para>

If a file listed in a listfile is a directory, all files residing in this
directory, or any subdirectory thereof, gets counted in.  Shell wildcards
are allowed in the listfiles.

        </para>
        <para>

Now create the files <filename>&etcpathraw;/snapshot_{pub,root}.list</filename>
and <filename>&etcpathraw;/snapshot_{pub,root}.homelist</filename>, using the
example files.  Once you're happy with the files, follow the instructions in
the next section.

        </para>
      </section>
    </section>
    <section>
      <title>
        Inspecting current state of your system, making the first snapshot
      </title>
      <para>

Inspect all files listed in the listfiles, and decide wether their content is
OK for your securitypolicy.  Especially, the
<filename>authorized_keys</filename> files need inspection.  Once you're happy
with their contents, create the &statepath; directory, and make sure the
_systraq user can write to it.  NB: if your copy of the systraq package uses
another useraccount (the Debian package uses account "debian-systraq", e.g.)
<emphasis>that</emphasis> user should have write-access instead, of course.
Then, run <command>st_snapshot</command> manually:

        <screen>
# su -s /bin/sh _systraq
$ ST_OPHOMES=yes st_snapshot &etcpathraw;/snapshot_pub.list \
   &etcpathraw;/snapshot_pub.homelist > &statepathraw;/snapshot_pub.stat
        </screen>

Of course, if your copy of the systraq package uses another useraccount you
should su to that user instead.  And now, run as root:

        <screen>
# st_snapshot &etcpathraw;/snapshot_root.list \
   &etcpathraw;/snapshot_root.homelist > &statepathraw;/snapshot_root.stat
        </screen>

Inspect the permissions as listed in the output files, and decide wether you're
happy with them.  Check if all files listed should really be on your system.
(One could argue about wether one should have <filename>~/.netrc</filename>,
<filename>~/.rhosts</filename>, <filename>~/.ssh/identity</filename>,
<filename>~/.shosts</filename>, <filename>/etc/exports</filename>,
<filename>/etc/*hosts.equiv</filename> .  Of course, this depends on your
planned use of the system.)  If you're not happy, fix the permissions and
ownerships.  You might like to take a look at <ulink
url="http://www.openbsd.org/cgi-bin/cvsweb/src/etc/security?rev=1.49&amp;content-type=text/x-cvsweb-markup">the
OpenBSD <filename>/etc/security</filename> script</ulink> to get inspiration.

      </para>
      <para>

Make sure you trust all binary files, which are not in vendor-supplied packages
(e.g. stuff in <filename class="directory">/usr/local/bin/</filename> on
Debian systems), as they are on your system now.  (You could e.g. reinstall
them from trusted sources.)  Once your system is considered safe, generate a file containing
checksums of these files.  You can generate this by running e.g., as user
_systraq,

        <screen>
$ find /usr/local/sbin /usr/local/bin /usr/local/lib \
   /usr/local/share -type f -exec sha256sum {} + | \
   sort -k 2 >&statepathraw;/systraq.sums
        </screen>

      </para>
      <para>

Make sure you trust all files in your <filename>filetraq.conf</filename> file,
and create the directory <filename
class="directory">&statepathraw;/filetraq/</filename>.  Then run, as user
_systraq,

        <screen>
$ filetraq &etcpathraw;/filetraq.conf \
    &statepathraw;/filetraq
        </screen>
to create the first filetraq backup.
      </para>
    </section>
    <section>
      <title>Setting up cronjob</title>
      <para>

The <filename>systraq-<replaceable>version</replaceable>/etc/systraq</filename>
file is installed as <filename>&cronpathraw;/systraq</filename>.  (If your cron
doesn't look in this directory (but <emphasis>has</emphasis> support for
<filename class='directory'>cron.d</filename> style directories), then activate
it by doing

        <screen>
# ln -s &cronpathraw;/systraq /etc/cron.d/systraq
        </screen>

.) This makes sure <command>filetraq</command> gets run every half hour,
<command>systraq</command> gets run daily, and the systraq status files get
updated by running <command>st_snapshot</command>, using the
<command>st_snapshot.hourly</command> wrapper, each hour.

      </para>
    </section>
  </section>

  <section>
    <title>Daily Maintenance</title>

    <para>

When a user is added to the system: update <filename>filetraq.conf</filename>
with this user's <filename>authorized_keys</filename>.

    </para>
    <para>

<filename>filetraq.conf</filename> needs maintenance also once files listed
there have been removed by system upgrades, or once files have been added to
e.g. <filename class="directory">/etc/</filename>.

    </para>
    <para>

In case Debian packages are installed with missing
<filename>/var/lib/dpkg/info/*.md5sums</filename> file, things break.  Consult
the examples section in the debsums manpage, for a hint on how to deal with
these broken packages.  Alternatively, one can do:

      <screen>
debsums -s > /tmp/sums 2>&1
grep 'no md5sums for' /tmp/sums | awk '{print $5}' > /tmp/pkgs
      </screen>

check the contents of <filename>/tmp/pkgs</filename>.

      <screen>
apt-get update
apt-get --reinstall install `cat /tmp/pkgs`
debsums --silent --generate=missing,keep `cat /tmp/pkgs`
apt-get clean
      </screen>
    </para>
    <para>

When installing or upgrade stuff in <filename>/usr/local</filename>, be sure to
update <filename>&statepathraw;/systraq.sums</filename> with
the correct checksums.

    </para>
  </section>

  <section>
    <title>Internals</title>
    <section>
      <title>Files used</title>
      <para>

We list all files used by the systraq system, along with a short description
of their role.

        <variablelist>
          <title>Files used</title>
          <varlistentry>
            <term>&homepath;</term>
            <listitem><para>homedir of _systraq user.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>&statepath;</term>
            <listitem><para>
stores systraq status files, should be writable by _systraq user.
            </para></listitem>
          </varlistentry>
          <varlistentry>
            <term><filename>
                &statepathraw;/snapshot_pub.stat
            </filename></term>
            <term><filename>
                &statepathraw;/snapshot_root.stat
            </filename></term>
            <listitem><para>

stdout of <command>st_snapshot</command>, listing permissions, ownership and
checksums of some files, both publicly readable, as well as non-world readable.

            </para></listitem>
          </varlistentry>
          <varlistentry>
            <term><filename>
                &etcpathraw;/filetraq.conf
            </filename></term>
            <listitem><para>

configuration file for <command>filetraq</command>, listing files to get
monitored.

            </para></listitem>
          </varlistentry>

          <varlistentry>
            <term>
              <filename>&etcpathraw;/snapshot_pub.list</filename>
            </term>
            <term>
              <filename>&etcpathraw;/snapshot_root.list</filename>
            </term>
            <term>
              <filename>&etcpathraw;/snapshot_pub.homelist</filename>
            </term>
            <term>
              <filename>&etcpathraw;/snapshot_root.homelist</filename>
            </term>
            <listitem><para>

configutation files for <command>st_snapshot</command>, listing both publicly
readable, as well as non-world readable files to get monitored, as well as
files to be found in homedirectories.  Script
<command>st_snapshot.hourly</command> passes these to
<command>st_snapshot</command> in its two arguments.

            </para></listitem>
          </varlistentry>
          <varlistentry>
            <term>
              <filename>&statepathraw;/systraq.sums</filename>
            </term>
            <listitem><para>

checksums of binary files not in Debian packages, verified by running
<command>systraq</command>.

            </para></listitem>
          </varlistentry>
        </variablelist>
      </para>
    </section>
    <section>
      <title>Dependencies</title>
      <para>

FIXME: diagram listing dependencies: what calls what, what reads and writes
what.

      </para>
    </section>
    <section>
      <title>The systraq scripts</title>
      <para>

The <command>systraq</command>, <command>st_snapshot</command> and
<command>st_snapshot.hourly</command> scripts come with their own manpages,
distributed with this manual.

      </para>
    </section>

  </section>

  <section>
    <title>Hacking on systraq</title>

    <para>

Some hints for those who'd like to hack the systaq software.  This section is only
interesting for software developers.

    </para>

    <section>
      <title>Version Control</title>

    <para>

Systraq is maintained using git on Debian's Alioth, in the <ulink
url='https://wiki.debian.org/Alioth/PackagingProject'>collab-maint</ulink>
project.  If you have access, you should be able to do:

<screen>
 $ git clone ssh+git://git.debian.org/git/collab-maint/systraq.git
</screen>

If you don't have git write access, you can check <ulink
url='http://anonscm.debian.org/gitweb/?p=collab-maint/systraq.git'>http://anonscm.debian.org/gitweb/?p=collab-maint/systraq.git</ulink>
for readonly Web access; or do

<screen>
 $ git clone git://anonscm.debian.org/collab-maint/systraq.git
</screen>

for access using your git client.  Commit messages get sent to a Debian <ulink
url='https://packages.qa.debian.org/'>Package Tracking System</ulink> mailing
list.  See <ulink
url='https://www.debian.org/doc/manuals/developers-reference/resources.html#pkg-tracking-system'>https://www.debian.org/doc/manuals/developers-reference/resources.html#pkg-tracking-system</ulink>
for more information.

    </para>
    </section>
    <section>
      <title>Generating .tar.gz from version control</title>

      <para>

If you'd like rebuild documentation, e.g. for creating a new .tar.gz release,
you'll need the tools listed below.

      </para>
      <para>

You need the SGML Declaration for XML 1.0 for building.  On Debian systems,
this is installed as <filename>/usr/share/sgml/declaration/xml.dcl</filename>.
<command>./configure</command> will give you hints on what to do if it fails
to find this file.

      </para>
      <para>

You need the <ulink url='http://docbook.sourceforge.net/projects/xsl/'>DocBook
XSL stylesheet</ulink> for manpages for building.  On Debian systems, this is
installed as
<filename>/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl</filename>.
<command>./configure</command> will give you hints on what to do if it fails to
find this file.

      </para>
      <para>

You need an XSLT engine for building.  By default, systraq tries to find <ulink
url='http://xmlsoft.org/XSLT/'>xsltproc</ulink> from Daniel Veillard.  This
package is shipped with many GNU/Linux and BSD distributions.  Alternatively,
<ulink url='http://saxon.sourceforge.net/'>Saxon</ulink>, written in Java, from
Michael Kay or <ulink url='http://xmlxslt.sourceforge.net/'>XML::XSLT</ulink>,
written in Perl, from Geert Josten, Egon Willighagen e.a. might work for you.
However, you'd have to hack systraq's <filename>man/Makefile.am</filename> to
use these.

      </para>
      <para>

You need <ulink url='http://openjade.sourceforge.net/'>OpenJade</ulink>, as
maintained by Castle, Clasen, Ibach, Martin, Nilsson e.a. to typeset this
manual.  OpenJade is shipped with many GNU/Linux and BSD distributions.
Alternatively, you can use <ulink url='http://jclark.com/'>James
Clark</ulink>'s <ulink url='http://jclark.com/jade/'>Jade</ulink> from <ulink
url='ftp://ftp.jclark.com/pub/jade/'>ftp://ftp.jclark.com/pub/jade/</ulink>.
Beware: there hasn't been a Jade release between October 1998 (1.2.1) and
October 2004.  You might need Debian patches: The Debian package has had
patches applied on 8 Jun 2004 and maybe later.  So you're likely better off
using OpenJade: upstream for this extension of Jade was alive at 2004-09.  The
<command>./configure</command> script will pick whatever is available on your
system.
      </para>
      <para>

Furthermore, you need <command>jadetex</command> and
<command>pdfjadetex</command> as shipped with <ulink
url='http://jadetex.sourceforge.net/'>JadeTex</ulink> (and with many GNU/Linux
and BSD distributions) to generate PostScript and PDF from this document.

      </para>
      <para>

You need TeX's <command>dvips</command> to generate PostScript from JadeTex's
DVI.  If it's not included with your system, get it from the
<ulink url='http://www.tug.org/texlive/'>TeX Live distribution</ulink>.

      </para>
      <para>

Finally, you need <ulink url='http://w3m.sourceforge.net/'>w3m</ulink> to
convert HTML output to plain ascii.  If <command>./configure</command> doesn't
find w3m on your system, it'll use <ulink
url='http://lynx.isc.org/release/'>Lynx</ulink>.  Both text-browsers are
shipped with many GNU/Linux and BSD distributions.

      </para>
    </section>

  </section>

  <section>
    <title>Contact, other tools</title>

    <section>
      <title>Contact information, reporting bugs</title>

      <para>
If you have any questions or
remarks about systraq, you can mail the author at <email>&bugemail;</email>.
You can also use this address for reporting bugs (reading  the <ulink
url='http://www.catb.org/~esr/faqs/smart-questions.html'>How To Ask Questions
The Smart Way</ulink> document before reporting might be useful) .  However, if
the bug you've found is present in the systraq Debian package too, please use
the <ulink url='http://www.debian.org/Bugs/Reporting'>Debian Bug Tracking
System</ulink> for reporting.

      </para>
    </section>
    <section>
      <title>Similar tools</title>

    <para>

        I believe <ulink
url='http://packages.debian.org/unstable/admin/diffmon.html'>diffmon</ulink>
does about the same as this tool.

    </para>
    <para>

<ulink url='http://oss.sgi.com/projects/fam/'>FAM</ulink> (File Alteration
Monitor) could be used by systraq (instead of cron): it is for a particular
process to "subscribe" to changes to a file / directory. FAM then implements
the system-dependent best way to do that (e.g. dnotify on modern Linux) and, if
more than one process is interested in the same file, centralises the polling
(if polling is necessary), so that less resources are taken in total.

    </para>
    <para>

<ulink url='http://aide.sf.net/'>Aide</ulink> and <ulink
url='http://osiris.shmoo.com/'>Osiris</ulink> are big packages for use in sites
where demands are high.

      </para>
    </section>
  </section>
</article>
