This came up during u2k20 while discussing tempfiles for gotweb inside a
chroot. At the moment we don't include it by default and ports have to
create it themselves. Since I assume we want web applications to run
inside a /var/www chroot as much as possible and even some libc
functions depend on /tmp being available I'd argue we should include it
by default.

I also choose to make the directory 1777, similar to a normal /tmp,
since both multiple slowcgi or php-fpm pools can run simultaneously
under different users.

The cleanup functions don't reflect the current /tmp cleanup style, but
we can move the existing find statements to -delete in a separate patch.

I already had some positive feedback during u2k20 on the concept.
OK?

martijn@

Index: etc//daily
===================================================================
RCS file: /cvs/src/etc/daily,v
retrieving revision 1.93
diff -u -p -r1.93 daily
--- etc//daily  9 Sep 2019 20:02:26 -0000       1.93
+++ etc//daily  7 Apr 2020 14:37:15 -0000
@@ -55,6 +55,11 @@ if [ -d /tmp -a ! -L /tmp ]; then
            ! -path ./.ICE-unix ! -name . \
            -execdir rmdir -- {} \; >/dev/null 2>&1; }
 fi
+if [ -d /var/www/tmp -a ! -L /var/www/tmp ]; then
+       cd /var/www/tmp && {
+       find -x . -type f -atime +7 -delete 2>/dev/null
+       find -x . -type d -empty -delete 2>/dev/null
+fi
 
 # Additional junk directory cleanup would go like this:
 #if [ -d /scratch -a ! -L /scratch ]; then
Index: etc//rc
===================================================================
RCS file: /cvs/src/etc/rc,v
retrieving revision 1.543
diff -u -p -r1.543 rc
--- etc//rc     24 Jan 2020 06:17:37 -0000      1.543
+++ etc//rc     7 Apr 2020 14:37:15 -0000
@@ -532,7 +532,7 @@ if [[ -f /etc/ptmp ]]; then
            'password file may be incorrect -- /etc/ptmp exists'
 fi
 
-echo clearing /tmp
+echo clearing temporary directories
 
 # Prune quickly with one rm, then use find to clean up /tmp/[lqv]*
 # (not needed with mfs /tmp, but doesn't hurt there...).
@@ -540,6 +540,7 @@ echo clearing /tmp
 (cd /tmp &&
     find . -maxdepth 1 ! -name . ! -name lost+found ! -name quota.user \
        ! -name quota.group ! -name vi.recover -execdir rm -rf -- {} \;)
+(cd /var/www/tmp && find . -x -delete)
 
 # Create Unix sockets directories for X if needed and make sure they have
 # correct permissions.
Index: etc//mtree/4.4BSD.dist
===================================================================
RCS file: /cvs/src/etc/mtree/4.4BSD.dist,v
retrieving revision 1.314
diff -u -p -r1.314 4.4BSD.dist
--- etc//mtree/4.4BSD.dist      29 Nov 2019 03:28:20 -0000      1.314
+++ etc//mtree/4.4BSD.dist      7 Apr 2020 14:37:15 -0000
@@ -749,6 +749,7 @@ var
         ..
         run                    type=dir uname=root gname=daemon mode=755
         ..
+        tmp                    type=dir uname=root gname=wheel mode=01777
     ..
 
     # ./var/audit

Reply via email to