HardenedBSD/etc/weekly
Nate Williams 0c9dbb91c3 Fixed *annoying* error with the weekly files. Do you get these whenver
/etc/weekly is run?

Rebuilding locate database: stty: stdin isn't a terminal TERM: Undefined
variable.

'su' apparently runs in root's environment before doing a seteuid(), so
it reads root's .cshrc.  The problem lies in the fact that $prompt is
*always* set by the time the command is executed, so you can't protect
your interactive commands from the non-interactive commands by the
normal:

if ($?prompt) then
   # interactive stuff here
endif

Set the -f flag (su -fm) which causes it not to read root's .cshrc file,
since there should be no reason to do so for these scripts since
/etc/crontab sets up all of the necessary environment.
1996-05-18 20:30:04 +00:00

68 lines
1.7 KiB
Bash

#!/bin/sh -
#
# @(#)weekly 5.14 (Berkeley) 6/23/91
# $Id: weekly,v 1.15 1996/05/13 22:05:10 wosch Exp $
PATH=/bin:/sbin:/usr/sbin:/usr/bin:/usr/libexec
export PATH
host=`hostname -s`
echo "Subject: $host weekly run output"
#echo ""
#echo "Removing old .o files:"
#find /usr/src -name '*.o' -atime +21 -print -a -exec rm -f {} \;
# see if /usr/src exists and is local
# before looking there for checked-out files
#if [ -d /usr/src -a \
# X"`find -f /usr/src ! -fstype local -prune -or -type d -print -prune`" != X ];
#then
# echo "looking for checked out files:"
# TDIR=/tmp/_checkout$$
#
# mkdir $TDIR
# for file in `find -f /usr/src ! -fstype local -prune -or \
# -name 'p.*' -print | egrep 'SCCS/p\.'`; do
# owner=`awk '{ print $3 }' $file`
# echo "$owner $file"
# echo $file >> $TDIR/$owner
# done | sed -e 's,SCCS/p.,,'
# for file in $TDIR/*; do
# sed -e 's,SCCS/p.,,' $file | \
# Mail -s 'checked out files' `basename $file`
# done
# rm -rf $TDIR
#fi
if [ -f /usr/libexec/uucp/clean.weekly ]; then
echo ""
echo "Cleaning up UUCP:"
echo /usr/libexec/uucp/clean.weekly | su daemon
fi
echo ""
echo "Rebuilding locate database:"
locdb=/var/db/locate.database
touch ${locdb}; chown nobody ${locdb}; chmod 644 ${locdb}
echo /usr/libexec/locate.updatedb | nice -5 su -fm nobody 2>&1 |\
fgrep -v 'Permission denied'
chmod 444 ${locdb}
echo ""
echo "Rebuilding whatis database:"
MANPATH=${MANPATH:-/usr/share/man:/usr/X11R6/man:/usr/local/man}
makewhatis.local "${MANPATH}"
#echo ""
#echo "Reformatting manual pages:"
#echo catman.local "${MANPATH}" | su -fm man
echo ""
echo "Cleaning up kernel database files:"
kernel=`sysctl -n kern.bootfile`
kernel=kvm_`basename ${kernel}`.db
find /var/db -name "kvm_*.db" -a ! -name ${kernel} -a -atime +7 -exec rm -f -- {} \;