5.3 tmpfs mount permissions

Giorgos Keramidas keramida at freebsd.org
Sun Nov 7 16:06:11 PST 2004


On 2004-11-07 14:52, "J.D. Bronson" <jbronson at wixb.com> wrote:
> I setup /etc/rc.conf as follows:
>
> tmpmfs="YES"
> tmpsize="512m"
>
> and it works - but I want to mount tmp with some additional
> options and wondering how to edit /etc/rc.d/tmp to accommodate this?
>
> I would like to add this: noexec,nosuid,nodev,nosymfollow
> when /tmp is mounted as tmpfs.

I see no way to pass extra options to mdmfs from `/etc/rc.d/tmp'.  One
way to do this is to modify /etc/rc.d/tmp locally, but this will create
maintenance work for every mergemaster run you do in the future.

> Can anyone offer some advice - thanks :)

The following patch is against CURRENT.  Does this look like a good thing to
you?  If it does, we could ask our rc.d gurus for their approval to commit it
to the tree.

Then, all you'd have to do to pass special options to the tmpmfs mount would
be to add something like this to your `rc.conf':

	tmpoptions="noexec,nosuid,nodev,nosymfollow"

----- tmpmfs-options.patch begins here -----
Index: etc/rc.subr
===================================================================
RCS file: /home/ncvs/src/etc/rc.subr,v
retrieving revision 1.31
diff -u -r1.31 rc.subr
--- etc/rc.subr	30 Jul 2004 17:19:35 -0000	1.31
+++ etc/rc.subr	7 Nov 2004 23:55:27 -0000
@@ -1290,11 +1290,15 @@
 #   $1 = size
 #   $2 = mount point
 #   $3 = (optional) bytes-per-inode
+#   $4 = extra options
 mount_md() {
+	if [ -n "$4" ]; then
+		opt="-o $4"
+	fi
 	if [ -n "$3" ]; then
 		bpi="-i $3"
 	fi
-	/sbin/mdmfs $bpi -s $1 -M md $2
+	/sbin/mdmfs $bpi $opt -s $1 -M md $2
 }
 
 fi
Index: etc/defaults/rc.conf
===================================================================
RCS file: /home/ncvs/src/etc/defaults/rc.conf,v
retrieving revision 1.229
diff -u -r1.229 rc.conf
--- etc/defaults/rc.conf	4 Nov 2004 13:33:29 -0000	1.229
+++ etc/defaults/rc.conf	7 Nov 2004 23:57:34 -0000
@@ -40,6 +40,7 @@
 removable_interfaces=""	# Removable network interfaces for /etc/pccard_ether.
 tmpmfs="AUTO"		# Set to YES to always create an mfs /tmp, NO to never
 tmpsize="20m"		# Size of mfs /tmp if created
+tmpoptions=""		# extra mount options for tmpfs
 varmfs="AUTO"		# Set to YES to always create an mfs /var, NO to never
 varsize="32m"		# Size of mfs /var if created
 populate_var="AUTO"	# Set to YES to always (re)populate /var, NO to never
Index: etc/rc.d/tmp
===================================================================
RCS file: /home/ncvs/src/etc/rc.d/tmp,v
retrieving revision 1.34
diff -u -r1.34 tmp
--- etc/rc.d/tmp	7 Oct 2004 13:55:26 -0000	1.34
+++ etc/rc.d/tmp	7 Nov 2004 23:56:31 -0000
@@ -56,7 +56,7 @@
 			echo "dropping into shell, ^D to continue anyway."
 			/bin/sh
 		else
-			mount_md ${tmpsize} /tmp
+			mount_md ${tmpsize} /tmp ${tmpoptions}
 			chmod 01777 /tmp
 		fi
 	fi
Index: share/man/man5/rc.conf.5
===================================================================
RCS file: /home/ncvs/src/share/man/man5/rc.conf.5,v
retrieving revision 1.235
diff -u -r1.235 rc.conf.5
--- share/man/man5/rc.conf.5	4 Nov 2004 13:33:29 -0000	1.235
+++ share/man/man5/rc.conf.5	8 Nov 2004 00:00:13 -0000
@@ -240,6 +240,12 @@
 Controls the size of a created
 .Pa /tmp
 memory file system.
+.It Va tmpoptions
+Controls the
+.Xr mount 8
+options of a created
+.Pa /tmp
+memory file system.
 .It Va varmfs
 Controls the creation of a
 .Pa /var
@@ -3109,6 +3115,7 @@
 .Xr kldxref 8 ,
 .Xr lpd 8 ,
 .Xr mdconfig 8 ,
+.Xr mount 8 ,
 .Xr mountd 8 ,
 .Xr moused 8 ,
 .Xr mrouted 8 ,
----- tmpmfs-options.patch ends here -----


More information about the freebsd-questions mailing list