From owner-FreeBSD-users-jp@jp.freebsd.org  Thu Sep 20 02:04:01 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id CAA82952;
	Thu, 20 Sep 2001 02:04:01 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from kiwi.furuta.bsdclub.org (furuta.st.wakwak.ne.jp [61.115.74.87])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id CAA82947
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 20 Sep 2001 02:03:59 +0900 (JST)
	(envelope-from furuta@bsdclub.org)
Received: from localhost (localhost [127.0.0.1])
	by kiwi.furuta.bsdclub.org (Postfix) with ESMTP id 6C7E13F800
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 20 Sep 2001 02:03:53 +0900 (JST)
To: FreeBSD-users-jp@jp.freebsd.org
From: Atsushi Furuta <furuta@bsdclub.org>
In-Reply-To: Your message of "Wed, 19 Sep 2001 23:21:13 +0900"
	<20010919232113.E9434@amalthea.phys.s.u-tokyo.ac.jp>
References: <20010919232113.E9434@amalthea.phys.s.u-tokyo.ac.jp>
X-Mailer: Mew version 1.93 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <20010920020353J.furuta@bsdclub.org>
Date: Thu, 20 Sep 2001 02:03:53 +0900
X-Dispatcher: imput version 980905(IM100)
Lines: 79
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010328
X-Sequence: FreeBSD-users-jp 64386
Subject: [FreeBSD-users-jp 64386] Re: kern_securelevel=1
 =?ISO-2022-JP?B?GyRCJEc9cSQtOX4kYSRKJCQbKEI=?=
 disks for mounted filesystems =?ISO-2022-JP?B?GyRCJEgbKEI=?=
 =?ISO-2022-JP?B?GyRCJE8bKEI=?= ?
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: furuta@bsdclub.org

$B8EED$G$9!#(B

From: Kawaguti Ginga <ginga@athena.club.ne.jp>
Date: Wed, 19 Sep 2001 23:21:13 +0900

> security(7) $B$N(B man $B$+$i$O(B
> mounted file system $B$KBP$9$k(B raw device $B7PM3$N(B"$B967b(B"$B$,(B
> $B=PMh$^$;$s$h!$$J8z2L$,4|BT$5$l$F$$$k$h$&$J$N$G(B
> $BNc$($P(B /dev/ad0s3a => / $B$N;~$K(B / $B$N(B file system $BFb$N(B
> $B%U%!%$%k$rIaDL$K%"%/%;%9$9$k$N$O(B permission $BDL$j$@$1$l$I(B
> /dev/rad0s3a $B$H$+$r7PM3$7$F$[$2$[$2$9$k$N$,(B
> $B5Q2<$5$l$k$H$$$&$3$H$8$c$J$$$G$7$g$&$+(B?

$B$^$5$7$/$=$&$$$&;v$G$7$g$&!#(B

> # source $B$rFI$s$G$$$k$o$1$G$O$J$$$G$9(B

source $B$rFI$a$P3NG'$G$-$^$9!#(B

/usr/src/sys/miscfs/specfs/spec_vnops.c $B$N(B spec_open() $B$,%9%Z%7%c%k%U%!(B
$B%$%k$N(B open() $B%k!<%A%s$G$9!#(BFSCRED $B$H$$$&$N$O!"(Bmount() $B$GFbItE*$KMxMQ(B
$B$5$l$k(B credential $B$G$9!#(B

================
	if (vn_isdisk(vp, NULL) && ap->a_cred != FSCRED && 
	    (ap->a_mode & FWRITE)) {
		/*
		 * Never allow opens for write if the device is mounted R/W
		 */
		if (vp->v_rdev->si_mountpoint != NULL &&
		    !(vp->v_rdev->si_mountpoint->mnt_flag & MNT_RDONLY))
				return (EBUSY);

		/*
		 * When running in secure mode, do not allow opens
		 * for writing if the device is mounted
		 */
		if (securelevel >= 1 && vfs_mountedon(vp))
			return (EPERM);

		/*
		 * When running in very secure mode, do not allow
		 * opens for writing of any devices.
		 */
		if (securelevel >= 2)
			return (EPERM);
	}
================

$B=q$-$3$_2D$G%G%#%9%/%G%P%$%9$r(B open(2) $B$9$k$H$-!"(B

	1) $B$=$b$=$b%G%#%9%/$,=q$-$3$_2D$G(B mount() $B$5$l$F$$$?$i(B EBUSY
	2) securelevel $B$,(B 1 $B0J>e$G!"(B(read only $B$G(B) mount() $B$5$l$F$$$?(B
	   $B$i(B EPERM
	3) securelevel $B$,(B 2 $B0J>e$J$i$P(B EPERM

$B$H$$$&$3$H$G$9!#(B($B$?$@$7!"%3%a%s%H$K$b$"$k$h$&$K(B slice $B$^$o$j$N=E$J$j$O(B
$BL5;k$7$F$$$^$9(B)

$B%U%!%$%k%7%9%F%`>e$NDL>o%U%!%$%k$,!"(Bsecurelevel $B$rJQ$($?$i=q$-$3$_IT2D(B
$BG=$K$J$C$?$j$9$k$o$1$G$O$"$j$^$;$s!#(Bschg, sappnd, sunlnk $B$O(B 
securelevel $B$K$+$+$o$i$:5!G=$7$^$9!#(Bsecurelevel $B$,(B 1 $B0J>e$@$H!"$?$H$((B 
root $B$G$b$3$l$i$N!V%U%i%0$r2<$9!W$3$H$,$G$-$J$/$J$k$@$1$G$9!#(B
(chflags(2) $B;2>H(B) $B$^$?!"(Bsecurelevel $B$O(B reboot $B$7$J$$8B$j(B root $B$G$b2<$2(B
$B$k$3$H$O$G$-$^$;$s!#(B(init(8) $B;2>H(B)

$B7k2L$H$7$F(B root $B$G$b>C$;$J$$%U%!%$%k$H$$$&$N$,$G$-$k$o$1$G$9$,!"%U%!%$(B
$B%k%7%9%F%`$4$H(B umount() $B$7$FD>@\%G%#%9%/%G%P%$%9(B (== raw disk) $B$rA`:n(B
$B$9$k$3$H$G%U%!%$%k$r>C$9$3$H$bIT2DG=$8$c$"$j$^$;$s!#(Bsecurelevel $B$r(B 2 
$B0J>e$K$9$l$P!"$=$l$9$iIT2DG=$K$J$j$^$9!#$b$A$m$s!"$=$NJ,4IM}:n6H$O$$$m(B
$B$$$mITJX$K$O$J$j$^$9!#(B

# $B8D?ME*$K$O!"(Bsecurity(7) $B$N(B flags $B$^$o$j$N5-=R$O!"$I$&$bH}$KBC$r$D$1(B
# $B$FFI$_$?$$$H$3$m!#$?$H$($P(B securelevel 1 $B$G(B schg $B$,8z2L$rH/4x$9$k$N(B
# $B$O!"(Braw device $B$X$N=q$-$3$_$,$G$-$J$$$+$i$G$O$J$/$F!"(Bchflags(2) $B$,$G(B
# $B$-$J$/$J$k$+$i$J$N$G$9$,!#(B
--
$B8EED(B $BFX(B
furuta@bsdclub.org
