This file is indexed.

/usr/sbin/tigexp is in tiger 1:3.2.3-10.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  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
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
#!/bin/sh
#
#     tiger - A UN*X security checking system
#     Copyright (C) 1993 Douglas Lee Schales, David K. Hess, David R. Safford
#
#    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 1, 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
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#     Please see the file `COPYING' for the complete copyright notice.
#
# tigexp  - 06/13/93
# tigexp  - 05/23/2003 - changed so that it is managed by autoconf
# tigexp  - 11/27/2008 - Proper handling of errors and existance (or
#                        lack of) idx file. Also, regenerate the index
#                        file only if running as root.
# tigexp  - 04/25/2009 - proper wording for error messages
#
# This program retrieves information explaining what a given message 
# (INFO, WARN, ALERT, FAIL or ERROR) given out by Tiger means.
#
#-----------------------------------------------------------------------------
TigerInstallDir="/usr/lib/tiger"

#
# Set default base directory.
# Order or preference:
#      -B option
#      TIGERHOMEDIR environment variable
#      TigerInstallDir installed location
#
basedir=${TIGERHOMEDIR:=$TigerInstallDir}
findbase=1

for parm
do
   case $parm in
   -B) basedir=$2; findbase=0; break;;
   esac
done

#
# Routines for verifying environment
#
# haveallcmds - verify command variables
# haveallfiles - verify files
# haveallvars - verify variables
#
haveallcmds()
{
  __retval=0

  for __file
  do
    eval __cmdstr=\$$__file
    set X $__cmdstr
    __cmd=$2
    if [ ! -n "$__cmdstr" ]; then
      echo "--ERROR-- [init001e] Don't have a value for required command $__file."
      __retval=1
    elif [ ! -f "$__cmd" ]; then
      echo "--ERROR-- [init004e] \`$__cmd' is not executable (command $__file)."
      __retval=1
    fi
  done
  return $__retval
}

haveallfiles()
{
  __retval=0

  for __var
  do
    eval __file=\$$__var
    if [ ! -n "$__file" ]; then
      echo "--ERROR-- [init005e] Don't have a value for required file or directory $__var."
      __retval=1
    elif [ ! -f "$__file" -a ! -d "$__file" ]; then
      echo "--ERROR-- [init006e] \`$__file' does not exist (file or directory $__var)."
      __retval=1
    fi
  done

  return $__retval
}

haveallvars()
{
  __retval=0

  for __var
  do
    eval __val=\$$__var
    if [ ! -n "$__val" ]; then
      echo "--ERROR-- [init007e] Don't have required variable $__var."
      __retval=1
    fi
  done

  return $__retval
}


findcmd()
{
  cmd=$1

  srch=/usr/ucb:/usr/bin:/bin:/etc:/usr/etc
  
  saveifs=$IFS
  IFS=:
  set $srch
  IFS=$saveifs
  for dir
  do
    [ -f $dir/$cmd ] && {
      echo $dir/$cmd
      return
    }
  done
}

GREP=`findcmd grep`
SED=`findcmd sed`
FMT=`findcmd fmt`
SORT=`findcmd sort`
LS=`findcmd ls`

[ ! -n "$FMT" ] && FMT=`findcmd cat`

dirname()
{
  _path="$1"

  saveifs=$IFS
  IFS=/
  set X $_path
  IFS=$saveifs

  shift

  if [ $# -eq 1 ]; then
    _dirname='./'
  else
    _dirname=$1
    shift
    while [ $# -ne 1 ]
    do
      _dirname="$_dirname/$1"
      shift
    done
  fi
  
  echo "$_dirname"
}


[ $findbase -ne 0 ] && {
  if [ ! -d "$basedir/doc" -o ! -d "$basedir/systems" ]; then
    tempdir="`dirname $0`"
    if [ -d "$tempdir/doc" -a -d "$tempdir/systems" ]; then
      basedir="$tempdir"
    elif [ -d ../doc -a -d ../systems ]; then
      basedir=..
    fi
  fi
}

BASEDIR="$basedir"
export BASEDIR

params="$*"

haveallcmds GREP FMT SED SORT LS || exit 1
haveallfiles BASEDIR || exit 1

check_idx()
{
 [ "$UUID" = "" ] && UNAME=`whoami`

# Check if the index is up to date
 if [ "$UNAME" != "root" ] ; then 
  {
# Not running as root, just warn if the index file is out of date, do not
# regenerate it
    cd $BASEDIR/doc
    $LS -t
  } | {
    read file
    [ "$file" != "explain.idx" ] && {
	echo "Warning: Explain index out of date and unable to rebuild it."
        echo "Warning: Please regenerate it by running, as root, the following command: "
        echo "Warning: cd $BASEDIR && util/genmsgidx doc/*txt"
    }
  }
  else
  {
# Not running as root, just warn if the index file is out of date, do not
# regenerate it
    cd $BASEDIR/doc
    $LS -t
  } | {
    read file
    [ "$file" != "explain.idx" ] && {
      echo "Rebuilding explain index file"
      $BASEDIR/util/genmsgidx $BASEDIR/doc/*.txt 
    }
  } 
  fi
}

explain()
{
  message="$1"
  if [ ! -e "$BASEDIR/doc/explain.idx" ] ; then
    echo "Error: Explain index file ($BASEDIR/doc/explain.idx) does not exist."
    echo "Error: Please create it by running, as root, the following command: "
    echo "Error: cd $BASEDIR && util/genmsgidx doc/*txt"
    exit 1
  fi
  $GREP "$message" $BASEDIR/doc/explain.idx |
  {
    read msgid file start end
    echo
    if [ -n "$start" -a -n "$end" ]; then
      $SED -e "$start,${end}p" -e '1,$d' $BASEDIR/doc/$file |
      $FMT
    else
      echo "Can not find explanation for message-id $message"
    fi
    echo
  }
}

explainfile()
{
  file=$1
  if [ ! -r "$file" ] ; then
    echo "Error: Cannot read file provided as argument: $file"
    exit 1
  fi
  $GREP '^--[A-Z]*-- \[.*\]' $file |
  $SED -e 's/^.*\[\(.*\)\].*$/\1/' |
  $SORT -u |
  while read msgid
  do
    echo "Message ID: $msgid"
    explain "$msgid"
  done
}

explaininsert()
{
  file=$1
  msgid=
  [ -f "$file" ] &&  {
  {
    while read line
    do
      case "$line" in
	--[A-Z]*)
	[ -n "$msgid" ] && {
	  explain "$msgid"
	  msgid=
	}
	msgid="`echo \"$line\" | $SED -e 's/^.*\[\(.*\)\].*$/\1/' -e '/\-/d'`"
	;;
	\#*)
	[ -n "$msgid" ] && {
	  explain "$msgid"
	  msgid=
	};;
      esac
      echo "$line"
    done

    [ -n "$msgid" ] && {
      explain "$msgid"
    }
  } < $file
  }
}

set x $params

shift

if [ "$1" = "-f" ]; then
  explainfile $2
elif [ "$1" = "-F" ]; then
  check_idx
  explaininsert $2
elif [ $# -eq 1 ]; then
  check_idx
  explain "$1"
else
  check_idx
  for msg
  do
    echo "[$msg]"
    explain $msg
  done
fi