[BACK]Return to perusertmp CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / etc / rc.d

File: [cvs.NetBSD.org] / src / etc / rc.d / perusertmp (download)

Revision 1.8, Fri Jul 3 18:36:54 2015 UTC (3 years, 8 months ago) by dholland
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, HEAD
Changes since 1.7: +2 -2 lines

/usr/sbin/chown -> /sbin/chown
(not sure why these need explicit paths at all, but whatevs)

#!/bin/sh
#
# $NetBSD: perusertmp,v 1.8 2015/07/03 18:36:54 dholland Exp $
#

# 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}')
		if [ "${mount_point}" = "/tmp" ]; then
			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
		/bin/mkdir -p ${per_user_tmp_dir}
	fi
	/sbin/chown root:wheel ${per_user_tmp_dir}
	/bin/chmod 0555 ${per_user_tmp_dir}

	# Create magic link for /tmp.
	if [ "$(/usr/bin/readlink /tmp)" != ${per_user_tmp_dir}/@ruid ]; then
		/bin/rm -rf /tmp
		/bin/ln -s ${per_user_tmp_dir}/@ruid /tmp
	fi
}

load_rc_config $name
run_rc_command "$1"