FADSCAN(1)                  General Commands Manual                 FADSCAN(1)



NAME
       fadscan - filesystem scanner

SYNOPSIS
       fadscan  [ -V | --version ] [ -v | --verbose | -d level | --debug=level
       ] [ -h | --help ] [ -p | --paths ] [ -n | --simulate ] [ --no-crcs ]  [
       --log-dir=logdir  ]  [ --state-dir=sttdir ] { { -i | --mode-init | -c |
       --mode-check | -r | --mode-refresh } scanid  filelist-file  |  {  -s  |
       --mode-schedule } scanid }

DESCRIPTION
       Fadscan  is designed to be run on a day by day basis, reporting differ-
       ences between the state of a specified set of files on a previous occa-
       sion and their state at runtime.

       Fadscan  is useful as a security tool, and as a tool to remind the for-
       getful sysadmin to log system configuration changes, and for those  who
       are simply curious what is happening on their system.

       Fadscan operates in four modes: initialize, check, refresh and schedule
       which correspond to the options -i, -c, -r and -s.  In the first  three
       modes, fadscan operates on a fileset defined by the command-line param-
       eters scanid and filelist-file, where scanid is used to  determine  the
       names  of  the  state  and  log  files  to  which it will write to, and
       filelist-file is a file containing a list of files to scan for changes,
       one per line. If this file is - then the list is read from standard in-
       put. In schedule mode, the filelist-file parameter is not required.

       In initialize mode, fadscan scans the listed  files  recording  various
       attributes  of  each  of  them.  This information is written in gzipped
       (see gzip(1)) Data::Dumper(3pm) format, and is preserved to  facilitate
       subsequent checks and refreshes. This file is called the base snapshot.
       The base snapshot will be overwritten by  subsequent  initializes,  re-
       freshes or post-schedule checks.

       In  refresh  mode,  fadscan  scans the listed files reporting important
       differences in the state of any of them. Additionally it refreshes  the
       base  snapshot.   Subsequent checks and refreshes will then compare the
       fileset with the refreshed base snapshot file.

       In schedule mode, fadscan schedules a refresh to be made  at  the  next
       invocation  in  check  mode.  It does this by creating a schedule file,
       which is detected the next time fadscan is run in check mode.  This  is
       intended to facilitate refreshing when fadscan is invoked by cron(8) in
       check mode. See EXAMPLES below for  further  explanation  of  operating
       fadscan with cron(8).

       In  check mode, fadscan scans the listed files reporting differences in
       the state of any of the files.  If the check is a post-scheduled check,
       then the temporary base snapshot, created during the scan, is preserved
       to become the new base snapshot, and the schedule file is deleted.

CONFIGURATION
       The filelist file is most easily prepared using the find(1) command and
       then piped into fadscan (so using - to specify the filelist file).

OPTIONS
       -d level, --debug=level  Determines  how  verbose this program will be.
                                The message types displayed for the  different
                                values  of level are as follows: 0 displays no
                                messages; 1 displays only errors,  2  displays
                                errors  and warnings; 3 displays errors, warn-
                                ings and informational messages; higher values
                                display  errors,  warnings, informational mes-
                                sages and various messages intended for debug-
                                ging.  The default is 2.

       -h, --help               Displays a brief usage message.

       -p, --paths              Lists  the  compiled-in paths of various files
                                and directories that this program  uses.   -n,
                                --simulate  Some  external  commands that this
                                program runs may be displayed rather than  ac-
                                tually  executed.   BEWARE: different programs
                                implement different levels of  simulation;  so
                                this  option  may work perfectly; on the other
                                hand it may do nothing at all!

       -v, --verbose            Equivalent to -d 3.

       -V, --version            Prints the program's version number and exits.

       --log-dir=logdir         This option is used to specify an  alternative
                                location  for  reports  generated  by fadscan.
                                The default is /var/log/fad/fadscan.

       --state-dir=sttdir       This option is used to specify an  alternative
                                location  for  state information which must be
                                preserved between invocations of fadscan.  The
                                default is /var/lib/fad/fadscan.

       -i,--mode-init           Operate in initialize mode.

       --no-crcs                Suppress  the  writing of CRCs; this will con-
                                siderably speed up the process  of  collecting
                                the  data about each filesystem item, but will
                                make it impossible to distinguish files  whose
                                contents have changed.

       -r,--mode-refresh        Operate in refresh mode.

       -s,--mode-schedule       Operate in schedule mode.

EXIT STATUS
       On  success  fadscan  returns  zero. On failure it returns non-zero and
       displays a diagnostic message.

FILES
       /var/lib/fad/fadscan/scanid-basesnap.*
                                Default location of base snapshot for  scanid,
                                generated by the -i option.

       /var/lib/fad/fadscan/scanid-scheduled
                                Default  location  for  schedule request files
                                for scanid, generated by the -s option.

       /var/lib/fad/fadscan/scanid-tempsnap.*
                                Default location  of  temporary  snapshot  for
                                scanid, generated by the -c option.  If option
                                -r is used, or -c following a schedule request
                                made  with  -s,  then  this  file  is moved to
                                /var/lib/fad/fadscan/scanid-scheduled    after
                                the report has been generated.

       /var/log/fad/fadscan/scanid-day.*
                                Default location of log files.

ENVIRONMENT VARIABLES
       None.

EXAMPLES
       Supposing /root/bin/list_whole_system contains:

              #!/bin/bash
              find / \( \
                         -path /var/tmp -o \
                         -path /tmp     -o \
                         -path /home    -o \
                         -path /proc    -o \
                         -path /sys        \
                     \) -prune -o -print

       Then the base snapshot would be created by the command:

              /root/bin/list_whole_system | fadscan -i whole_system -

       The following entry could be added to root's crontab(5):

              00 04 * * 1-5 /root/bin/list_whole_system | fadscan -c whole_system -

       After reading the most recent report, root could issue the command:

              fadscan -s whole_system

       This  will  ensure  that the next check refreshes the base snapshot. If
       root does not manage to read the report then the command should not  be
       issued.

CAVEATS
       None.

STANDARDS
       This manual page documents version 7 of fadscan.

SEE ALSO
       crontab(5),  perlre(1), mkfad(1), faddiff(1), fad(5), cron(8), gzip(1),
       fadcat(1), fad-config(1), find(1)

AUTHOR
       Alexis Huxley <alexishuxley@gmail.com>

COPYRIGHT & DISTRIBUTION POLICY
       Copyright (C) 1995-2024 Alexis Huxley

       This program 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.

       This  program  is  distributed  in the hope that it will be useful, but
       WITHOUT ANY  WARRANTY;  without  even  the  implied  warranty  of  MER-
       CHANTABILITY  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
       Public License for more details.

       You should have received a copy of the GNU General Public License along
       with this program; if not, write to the Free Software Foundation, Inc.,
       675 Mass Ave, Cambridge, MA 02139, USA.



                                  30 Jul 2024                       FADSCAN(1)