From owner-FreeBSD-tech-jp@jp.freebsd.org  Wed Nov 11 12:52:11 1998
Received: (from daemon@localhost)
	by jaz.jp.freebsd.org (8.9.1+3.1W/8.7.3) id MAA23257;
	Wed, 11 Nov 1998 12:52:11 +0900 (JST)
	(envelope-from owner-FreeBSD-tech-jp@jp.FreeBSD.org)
Received: from diana.infonets.hiroshima-u.ac.jp (diana.infonets.hiroshima-u.ac.jp [133.41.33.53])
	by jaz.jp.freebsd.org (8.9.1+3.1W/8.7.3) with ESMTP id MAA23245
	for <freebsd-tech-jp@jp.freebsd.org>; Wed, 11 Nov 1998 12:52:03 +0900 (JST)
	(envelope-from taoka@infonets.hiroshima-u.ac.jp)
Received: from peg.infonets.hiroshima-u.ac.jp (peg.infonets.hiroshima-u.ac.jp [133.41.33.64])
	by diana.infonets.hiroshima-u.ac.jp (8.8.8/3.6W) with ESMTP id MAA00559
	for <freebsd-tech-jp@jp.freebsd.org>; Wed, 11 Nov 1998 12:51:55 +0900 (JST)
Received: from localhost (localhost.infonets.hiroshima-u.ac.jp [127.0.0.1]) by peg.infonets.hiroshima-u.ac.jp (8.9.1/3.6W) with ESMTP
	id MAA28729 for <FreeBSD-tech-jp@jp.freebsd.org>; Wed, 11 Nov 1998 12:50:56 +0900 (JST)
To: FreeBSD-tech-jp@jp.freebsd.org
From: TAOKA Satoshi <taoka@infonets.hiroshima-u.ac.jp>
In-Reply-To: Your message of "Tue, 10 Nov 1998 19:42:03 +0900 (JST)"
	<19981110194203Q.shiozaki@ased.mt.nec.co.jp>
References: <19981110194203Q.shiozaki@ased.mt.nec.co.jp>
X-Mailer: Mew version 1.93 on XEmacs 20.4 (Emerald)
X-Prom-Mew: Prom-Mew 1.93 (procmail reader for Mew)
X-URL: http://www.infonets.hiroshima-u.ac.jp/~taoka/
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <19981111125056R.taoka@infonets.hiroshima-u.ac.jp>
Date: Wed, 11 Nov 1998 12:50:56 +0900
X-Dispatcher: imput version 980905(IM100)
Lines: 81
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+980914
X-Sequence: FreeBSD-tech-jp 1908
Subject: [FreeBSD-tech-jp 1908] Re: lpr & setuid bit
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org
X-Originator: taoka@infonets.hiroshima-u.ac.jp


$BED2,$G$9!#(B

> $B1v:j!s%$%=%?!<!w2q<R$G$9!#(B

$B$I$&$b$G$9!#(B

> > $B$J$k$[$I!#:#EY!"DI5a$7$F$_$^$9!#$?$@!"(Bgrep$B$7$?$@$1$G$9$,!"(B
> > userid = getuid();
> > $B$C$F$N$,0z$C3]$+$j$^$7$?!#(B
> 
> $B$*$j$g!#$5$9$,$K$3$s$J$H$3$m$G%_%9$O$7$J$$$G$7$g$&$M!#(B

lpr$B$N%=!<%9$r8+$k$H(B

> > userid = getuid();

$B$N<~JU$O!"(B

	if ((person = getlogin()) == NULL) {
		userid = getuid();
		if (userid != pp->daemon_user || person == 0) {
			if ((pw = getpwuid(userid)) == NULL)
				errx(1, "Who are you?");
			person = pw->pw_name;
		}
	}

$B$H$J$C$F$$$F!"DL>o$O(Buserid$B$KBeF~$5$l$F$^$;$s!#$G$b$3$NB>$K(Buserid$B$r=i4|2=(B
$B$7$F$$$k$H$3$m$,$J$$$N$G!"ITDjCM$,F~$k$h$&$J5$$,$7$^$9!#2?EY$+;n$7$^$7$?(B
$B$,!"(B0$B$,$?$^$?$^F~$C$F$$$k$h$&$G$9!#$A$J$_$K!"%0%m!<%P%kJQ?t(Buid$B$H$$$&$N$,(B
$B$"$C$F$3$A$i$K$O(Bgetuid()$B$NCM$rF~$l$F$$$^$9!#(B

$B$G!"$"$N>l=j$r(B

			if(stats.st_uid == getuid()) {
				return(0);
			}

$B$H$9$l$P!"(B

lpr: /tmp/fsys.dvi:All@21772.ps: is not removable by you

$B$O=P$J$/$J$j$^$7$?$,!"$G$b>C$($F$/$l$^$;$s!#$G!"$b$&$A$g$C$H%=!<%9$r8+$k(B
$B$H!"(Blpr -r$B$G<B9T$7$?$H$-!"(Blpr$B$G%U%!%$%k$r>C$7$F$$$k$N$G$O$J$/!"(Blpd$B$G>C$9(B
$B$h$&$K0MMj$7$F$$$k$h$&$G$9!#(Blpd$B$N%9%W!<%k%G%#%l%/%H%j$K$G$-$k%3%s%H%m!<(B
$B%kMQ$N%U%!%$%k$K$O(B

U/tmp/fsys.dvi:All@21772.ps

$B$,F~$C$F$$$F!">C$9$h$&$K0MMj!J@hF,$N!V(BU$B!W$,!I>C$9!I$H$$$&0UL#$N$h$&$G$9!K(B
$B$7$F$$$k$h$&$J$N$G$9$,!"$&$^$/$$$C$F$J$$$h$&$G$9!#(B

$B$A$J$_$K!"(Blpr$B$r<B9T$7$F$$$k%[%9%H$H%W%j%s%?$NIU$$$F$$$k%[%9%H$O0[$J$j$^(B
$B$9!#$3$N>l9g$@$H>C$5$J$$$,%m!<%+%k$N%W%j%s%?$@$H$&$^$/9T$/$N$+$bCN$l$^$;(B
$B$s!#(B

> $B%G%P%C%,$GDI$C$+$1!D$O$3$N%1!<%9$@$HFq$7$$$+$i!"(B
> fprintf $B$r$[$&$j9~$s$G(B userid $B$,E,@Z$+$I$&$+$H$+$r%A%'%C%/$7$F$_$k$H(B
> $BNI$$$G$7$g$&!#(B

setuid$B$7$F$"$k>l9g$O!"(Bgdb$B$,$&$^$/9T$+$J$$$h$&$G$9$M!#:rF|$K7P83:Q$G$9!#(B:-)

> # main $B4X?t$N@hF,$K!"E,@Z$J%f!<%6$KBP$9$k(B setuid(2) $B$rDI2C$7$?(B
> # lpr $B$r:n$C$F!"$3$l$r(B root $B$G(B gdb $B$K3]$1$l$P%(%_%e%l!<%7%g%s(B
> # $B$G$-$J$/$b$J$$!#(B
> 

gdb$B$N5!G=$K$"$k$+$bCN$l$^$;$s$M!#(B

> $B$"$NBeF~J8$N8e$G(B setuid(2) $B$7$F$k2DG=@-$O$"$j$^$9$,!#(B
> $B$G$J$1$l$P!"$o$6$o$6(B userid $B$C$F$$$&JQ?t$K<B(B UID $B$rBeF~$7$F$kM}M3$,(B
> $B$$$^$$$AJ,$+$i$s!#(B
> 
> # $BC1$K%*!<%P%X%C%I7y$C$?$@$1!)(B
> # $B$@$H$7$?$i!"$3$l$C$F$"$^$jK>$^$7$$%9%?%$%k$8$c$J$$$J$!!#(B

$B$J$<NI$/$J$$%9%?%$%k$J$N$G$7$g$&!#Kh2s4X?t$G=&$C$F$/$k$N$,@5$7$$$N$G$9$+!)(B

$BJQ?t$KBeF~$7$F$$$k$HCN$i$J$$$&$A$K=q$-49$($i$l$F$7$^$&2DG=@-$,$"$k$+$i$G(B
$B$9$+!)(B
