NetBSD/etc/rc.d/cleartmp
elad 5e2e282f9c Add support for per-user /tmp.
Enabled via per_user_tmp in /etc/rc.conf (default off).

See security(8) and rc.conf(5) for more details.

Lots of input from thorpej@ & christos@, thanks!
2007-02-04 08:19:26 +00:00

38 lines
786 B
Bash
Executable File

#!/bin/sh
#
# $NetBSD: cleartmp,v 1.8 2007/02/04 08:19:26 elad Exp $
#
# PROVIDE: cleartmp
# REQUIRE: mountall
# BEFORE: DAEMON
$_rc_subr_loaded . /etc/rc.subr
name="cleartmp"
rcvar="clear_tmp"
start_cmd="cleartmp_start"
stop_cmd=":"
cleartmp_start()
{
echo "Clearing temporary files."
#
# Prune quickly with one rm, then use find to clean up
# /tmp/[lq]* (this is not needed with mfs /tmp, but
# doesn't hurt anything).
#
if [ \( X"${per_user_tmp}" = X"YES" \) -a \( -d ${per_user_tmp_dir} \) ]; then
tmp_dir=${per_user_tmp_dir}
else
tmp_dir="/tmp"
fi
(cd ${tmp_dir} && rm -rf [a-km-pr-zA-Z]* &&
find -x . ! -name . ! -name lost+found ! -name quota.user \
! -name quota.group -exec rm -rf -- {} \; -type d -prune)
}
load_rc_config $name
run_rc_command "$1"