d4a648c345
real user id of the process and use this magic string for per-user tmp. This should fix PR/35687 Kernel parts reviewed by wrstuden@
46 lines
1.0 KiB
Bash
Executable File
46 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $NetBSD: cleartmp,v 1.10 2007/12/04 22:09:01 mjf 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 checkyesno per_user_tmp && [ -d ${per_user_tmp_dir} ]; then
|
|
tmp_dir=${per_user_tmp_dir}
|
|
else
|
|
tmp_dir="/tmp"
|
|
# Check if /tmp was created by the perusertmp rc.d
|
|
# script and recreate it if necessary.
|
|
if [ "$(/usr/bin/readlink /tmp)" = ${per_user_tmp_dir}/@ruid ]; then
|
|
/bin/rm -rf ${tmp_dir}
|
|
/bin/mkdir ${tmp_dir}
|
|
/usr/sbin/chown root:wheel ${tmp_dir}
|
|
/bin/chmod 1777 ${tmp_dir}
|
|
fi
|
|
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"
|