11.1Selad#!/bin/sh 21.1Selad# 31.8Sdholland# $NetBSD: perusertmp,v 1.8 2015/07/03 18:36:54 dholland Exp $ 41.1Selad# 51.1Selad 61.1Selad# PROVIDE: perusertmp 71.1Selad# REQUIRE: mountall 81.1Selad# BEFORE: cleartmp 91.1Selad 101.1Selad$_rc_subr_loaded . /etc/rc.subr 111.1Selad 121.1Seladname="perusertmp" 131.1Seladrcvar="per_user_tmp" 141.1Seladstart_cmd="perusertmp_start" 151.1Seladstop_cmd=":" 161.1Selad 171.1Seladperusertmp_start() 181.1Selad{ 191.1Selad echo "Preparing per-user /tmp." 201.1Selad 211.1Selad # If /tmp is a mount point, we can't do anything. 221.1Selad if [ -d "/tmp" ]; then 231.1Selad local mount_point 241.1Selad 251.1Selad mount_point=$(cd /tmp && /bin/df . | /usr/bin/tail -1 | /usr/bin/awk '{print $6}') 261.6Stron if [ "${mount_point}" = "/tmp" ]; then 271.1Selad echo "WARNING: /tmp is mounted." 281.1Selad exit 1 291.1Selad fi 301.1Selad fi 311.1Selad 321.1Selad # Enable magic symlinks. 331.1Selad /sbin/sysctl -qw vfs.generic.magiclinks=1 341.1Selad 351.1Selad # Fixup real temporary directory. 361.1Selad if [ ! -d ${per_user_tmp_dir} ]; then 371.2Sxtraeme /bin/mkdir -p ${per_user_tmp_dir} 381.1Selad fi 391.8Sdholland /sbin/chown root:wheel ${per_user_tmp_dir} 401.4Selad /bin/chmod 0555 ${per_user_tmp_dir} 411.1Selad 421.1Selad # Create magic link for /tmp. 431.7Smjf if [ "$(/usr/bin/readlink /tmp)" != ${per_user_tmp_dir}/@ruid ]; then 441.3Selad /bin/rm -rf /tmp 451.7Smjf /bin/ln -s ${per_user_tmp_dir}/@ruid /tmp 461.3Selad fi 471.1Selad} 481.1Selad 491.1Seladload_rc_config $name 501.1Seladrun_rc_command "$1" 51