Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Nov 2004 02:50:07 +0200
From:      Giorgos Keramidas <keramida@freebsd.org>
To:        freebsd-rc@freebsd.org
Subject:   RFC (fwd) Re: 5.3 tmpfs mount permissions
Message-ID:  <20041108005007.GB57736@gothmog.gr>

next in thread | raw e-mail | index | archive | help
Hi,

Does the change outlined below seem like something I should commit?

The most important part is the change in the mount_md function of
rc.subr IMHO.  If that's ok, then the rest is pretty straight-forward.

----- Forwarded message from "J.D. Bronson" <jbronson@wixb.com> -----

Date: Sun, 07 Nov 2004 18:38:29 -0600
From: "J.D. Bronson" <jbronson@wixb.com>
Subject: Re: 5.3 tmpfs mount permissions
To: Giorgos Keramidas <keramida@freebsd.org>
Cc: freebsd-questions@freebsd.org

At 06:06 PM 11/07/2004, Giorgos Keramidas wrote:
>On 2004-11-07 14:52, "J.D. Bronson" <jbronson@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="noexec,nosuid,nodev" # 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 -----


this looks GREAT. I think for security in mind, this would be a welcome 
addition to the FreeBSD OS - no ??

Thanks....I really appreciate this!



-- 
J.D. Bronson
Aurora Health Care // Information Services // Milwaukee, WI USA
Office: 414.978.8282 // Email: jd@aurora.org // Pager: 414.314.8282

----- End forwarded message -----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041108005007.GB57736>