2007-02-04 11:19:26 +03:00
|
|
|
#!/bin/sh
|
|
|
|
#
|
2015-07-03 21:36:54 +03:00
|
|
|
# $NetBSD: perusertmp,v 1.8 2015/07/03 18:36:54 dholland Exp $
|
2007-02-04 11:19:26 +03:00
|
|
|
#
|
|
|
|
|
|
|
|
# PROVIDE: perusertmp
|
|
|
|
# REQUIRE: mountall
|
|
|
|
# BEFORE: cleartmp
|
|
|
|
|
|
|
|
$_rc_subr_loaded . /etc/rc.subr
|
|
|
|
|
|
|
|
name="perusertmp"
|
|
|
|
rcvar="per_user_tmp"
|
|
|
|
start_cmd="perusertmp_start"
|
|
|
|
stop_cmd=":"
|
|
|
|
|
|
|
|
perusertmp_start()
|
|
|
|
{
|
|
|
|
echo "Preparing per-user /tmp."
|
|
|
|
|
|
|
|
# If /tmp is a mount point, we can't do anything.
|
|
|
|
if [ -d "/tmp" ]; then
|
|
|
|
local mount_point
|
|
|
|
|
|
|
|
mount_point=$(cd /tmp && /bin/df . | /usr/bin/tail -1 | /usr/bin/awk '{print $6}')
|
2007-02-15 16:27:35 +03:00
|
|
|
if [ "${mount_point}" = "/tmp" ]; then
|
2007-02-04 11:19:26 +03:00
|
|
|
echo "WARNING: /tmp is mounted."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Enable magic symlinks.
|
|
|
|
/sbin/sysctl -qw vfs.generic.magiclinks=1
|
|
|
|
|
|
|
|
# Fixup real temporary directory.
|
|
|
|
if [ ! -d ${per_user_tmp_dir} ]; then
|
2007-02-04 21:28:26 +03:00
|
|
|
/bin/mkdir -p ${per_user_tmp_dir}
|
2007-02-04 11:19:26 +03:00
|
|
|
fi
|
2015-07-03 21:36:54 +03:00
|
|
|
/sbin/chown root:wheel ${per_user_tmp_dir}
|
2007-02-06 19:54:27 +03:00
|
|
|
/bin/chmod 0555 ${per_user_tmp_dir}
|
2007-02-04 11:19:26 +03:00
|
|
|
|
|
|
|
# Create magic link for /tmp.
|
2007-12-05 01:09:01 +03:00
|
|
|
if [ "$(/usr/bin/readlink /tmp)" != ${per_user_tmp_dir}/@ruid ]; then
|
2007-02-05 04:47:48 +03:00
|
|
|
/bin/rm -rf /tmp
|
2007-12-05 01:09:01 +03:00
|
|
|
/bin/ln -s ${per_user_tmp_dir}/@ruid /tmp
|
2007-02-05 04:47:48 +03:00
|
|
|
fi
|
2007-02-04 11:19:26 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
load_rc_config $name
|
|
|
|
run_rc_command "$1"
|