Newsgroups: fj.unix
Path: galaxy.trc.rwcp.or.jp!coconuts.jaist!wnoc-tyo-news!etlnews.etl.go.jp!etlinn.etl.go.jp!etl.go.jp!trc.rwcp!rwc-tyo!news.iij.ad.jp!tuucp1.space.ad.jp!nuucp1.space.ad.jp!ouucp1.space.ad.jp!news.momiji.or.jp!news.hek.co.jp!news.csi.ad.jp!wnoc-kyo-news!rinsgw!nakano
From: nakano@math.ryukoku.ac.jp (Hiroshi NAKANO)
Subject: Re: how to lock
In-Reply-To: Kazushi's message of 20 Jul 1996 19:51:01 -0500
Message-ID: <NAKANO.96Jul22191005@orca21.math.ryukoku.ac.jp>
Sender: news@rins.ryukoku.ac.jp
Nntp-Posting-Host: 133.83.49.30
Reply-To: nakano@rins.ryukoku.ac.jp
Organization: Ryukoku Univ., Seta, Otsu, Japan
References: <tokada-2106961829440001@mkmac6.id.yamagata-u.ac.jp>
	<4s25k8$dm0@epsongw.epson.co.jp> <kazushi.837904114@pentagon.io.com>
Date: Mon, 22 Jul 1996 10:10:05 GMT
Lines: 108
Xref: galaxy.trc.rwcp.or.jp fj.unix:5864
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.unix&nb=5864&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

$BN6C+$NCfLn$G$9!#(B

In article <kazushi.837904114@pentagon.io.com> Kazushi (Jam) Marukawa
<jam@poboxes.com> writes:

 |$B$7$P$i$/A0$G$9$,!"%m%C%/$K$D$$$F$NOC$,CF$s$G$$$^$7(B
 |$B$?$M!#$=$NCf$G!"(BNFS$B@h$K$J$k$H!"(Bcreat()$B$d(Blink()$B!"(B
 |symlink()$B$G%m%C%/$9$k$N$OL5M}$@$H8@$C$F$?J}$,$$$i$C(B
 |$B$7$c$$$^$7$?!#$=$s$J$O$:$OL5$$$H;W$&$N$G$9$,!"$=$l(B
 |$B$KH?BP$9$k?M$O5o$^$;$s$G$7$?!#(B
 |
 |$B$=$3$G!"0l1~H?BP0U8+$r=P$7$F$*$-$^$9!#(B
 |
 |NFS V3$B!"(BV2 protocol$B$K$O!"(Bcreate$B!"(Blink$B!"(Bsymlink$B$H$$$C(B
 |$B$?(Bprocedure$B$,$,$"$j$^$9!#$3$l$i$O!"F14|<0$N(B
 |procedure$B$G$9!#$3$l$G!"==J,$K%m%C%/=hM}$,9T$($k$O(B
 |$B$:$G$9!#(B

link$B!"(Bsymlink $B$K4X$7$F$O4pK\E*$KF146$G!"!V;d$b0lI<(B!$B!W$H$$$C$?$H$3$m$G(B
$B$9$,!"(Bcreat $B$K4X$7$F$O$A$g$C$H0c$&$H;W$$$^$9!#(B

$BGSB>@)8f$N$?$a$K!"(Bcreat ("/my/lock/file", 0) $B$rMxMQ$7$?>l9g!"(B

   a. $B$=$N%U%!%$%k$,B8:_$9$k>l9g!"%U%!%$%k$X$N=q$-9~$_8"$,$"$l$P!"$=$N(B
      $B%5%$%:$r(B 0 $B$K$7$F!"=q$-9~$_%b!<%I$G%*!<%W%s$9$k!#(B

   b. $B$=$N%U%!%$%k$,B8:_$7$J$$>l9g$O!"%U%!%$%k$r:n$j!"=q$-9~$_%b!<%I$G(B
      $B%*!<%W%s$9$k$H$b$K!"J]8n%b!<%I$r(B 0 $B$K@_Dj$9$k!"(B

$B$N$,!"(BUNIX $B$N(B creat $B%7%9%F%`%3!<%k$G$N%;%^%s%F%#%C%/%9$G$9$,!"$3$l$r(B
NFS V2 $B$G<B8=$7$h$&$H$9$k$H!"(B

   a. LOOKUP $B$G%U%!%$%k$NB8:_$rD4$Y$F!"B8:_$9$k>l9g$O(B SETATTR $B$G$=$N%5(B
      $B%$%:$r(B 0 $B$K$9$k!"(B

   b. LOOKUP $B$G%U%!%$%k$NB8:_$rD4$Y$F!"B8:_$7$J$$>l9g$O!"(BCREATE $B$G%U%!(B
      $B%$%k$r:n@.$9$k!"(B

$B$H$$$&$3$H$K$J$j$^$9!#(B UNIX $B$N(B creat $B$KD>@\BP1~$9$k<jB3$-$,(B NFS V2 $B$K(B
$BB8:_$9$kLu$G$O$"$j$^$;$s!#(B $BGSB>@)8f$,$&$^$/$$$/$?$a$K$O!"(BNFS $B%5!<%P!<(B
$BB&$G!"(B

   a. $B=q$-9~$_8"$N$J$$%U%!%$%k$KBP$7$F$N%U%!%$%k%5%$%:$r;XDj$7$?(B
      SETATTR $B$O<:GT$9$k!"(B

   b. $BB8:_$9$k(B($B=q$-9~$_8"$N$J$$(B)$B%U%!%$%k$KBP$7$F$N(B CREATE $B$O<:GT$9$k!"(B

$B$H$J$C$F$$$k$3$H$,I,?\$G$9!#(B $B$H$3$m$,(B NFS V2 $B$G$O!"$3$N$I$A$i$bJ]>Z$5(B
$B$l$F$$$^$;$s!#(B $B$=$l$I$3$m$+$=$N5U$r?d>)(B($B5,Dj(B?)$B$7$F$$$k$h$&$K$b<h$l$^$9!#(B
RFC 1094 $B$N(B 3.3. Permission Issues $B$H$$$&@a$G$O!"(B

   Another problem arises due to the usually stateful open operation.
   Most operating systems check permission at open time, and then check
   that the file is open on each read and write request.  With stateless
   servers, the server has no idea that the file is open and must do
   permission checking on each read and write call.  On a local
   filesystem, a user can open a file and then change the permissions so
   that no one is allowed to touch it, but will still be able to write
   to the file because it is open.  On a remote filesystem, by contrast,
   the write would fail.  To get around this problem, the server's
   permission checking algorithm should allow the owner of a file to
   access it regardless of the permission setting.

$B$H8@$C$F$*$j!"Nc$($P!"(B4.4BSD Lite $B$N(B NFS $B%5!<%P$N%3!<%I$O$3$NE@$rH?1G(B
$B$7$?$b$N$K$J$C$F$$$^$9!#(B $B$D$^$j!"%U%!%$%k$N%*!<%J!<$O$=$NJ]8n%b!<%I$K(B
$B4X$o$i$:FI$_=q$-$G$-$k!"$H$$$&$3$H$G$9!#(B

# $BL/$J$3$H$K!"8fK\2H$N(B SunOS 4.1.3 $B$d(B SunOS 5.4 $B$G;n$7$F$_$k$H!"(BWRITE
# $B$K4X$7$F$OF1$8$J$N$G$9$,!"(BSETATTR $B$K4X$7$F$O!"%U%!%$%k$N=q$-9~$_8"$,(B
# $BI,MW$J$h$&$G$9!#(B $B$3$N$?$a!"(Bftruncate $B$J$I$GLdBj$,@8$8$k$3$H$,$"$j$^(B
# $B$9!#(B

$B7k6I!"(BNFS V2 $B$K4X$7$F$O(B creat $B$G$O!"GSB>@)8f$O$G$-$J$$$H;W$C$F$*$$$?J}(B
$B$,$h$$$H;W$$$^$9!#(B $B$3$l$O!"(B open("/my/lock/file", O_CREAT|O_EXECL,
...)  $B$G$bF1$8$G$9!#0lJ}!"(BNFS V3 $B$G$O$3$NJU$,2~A1$5$l$F$$$F!"GSB>E*$J(B
CREATE $B$,$G$-$k$h$&$K$J$C$F$$$^$9$+$i!"%/%i%$%"%s%HB&$N<BAu$,$^$H$b$G(B
$B$"$l$P!"GSB>@)8f$K;H$&$3$H$,2DG=$G$7$g$&(B($BL$3NG'(B)$B!#(B

 |$B$3$NJ}K!$NLdBj$O!"%m%C%/$7$F$$$k4V$K%5!<%P$,Mn$A$k(B
 |$B$H!"2sI|$G$-$J$$$H$$$&LdBj$G$9!#$3$l$@$1$O!"(Bfcntl
 |$B$r;H$o$J$$$HBP1~$G$-$^$;$s!#(B

$B$3$l$b$*$C$7$c$k0UL#$,NI$/J,$+$j$^$;$s!#(B $B%5!<%P%/%i%C%7%e$+$i$N2sI|$N(B
$BE@$G$O!"$`$7$m(B symlink $B$d(B link $B$NJ}$,!"(Bfcntl $B$h$j?.Mj@-$,$"$k$h$&$K;W(B
$B$$$^$9!#(B symlink $B$d(B link $B$NLdBj$O!"%/%i%$%"%s%HB&$N%W%m%;%9$,;`$s$@>l(B
$B9g$G$O$J$$$G$7$g$&$+(B?

 |$B2?$H$J$/!"(BNFS$B$K$*$$$F$O!"(Bflock$B$K$h$k(Block$B$O$G$-$J$$!#(B
 |fcntl$B$d(Blockf$B$K$h$k(Block$B$b!"(Blockd$B!"(Bstatd$B4XO"$G!"LdBj(B
 |$B$,5/$3$k$3$H$,B?$$$H$$$C$?OC$+$i!"8m2r$,@8$8$F$$$k(B
 |$B$h$&$J5$$,$7$^$9!#(B

$B<XB-$+$bCN$l$^$;$s$,!"!V(BNFS$B$K$*$$$F$O!"(Bflock $B$K$h$k(Block$B$O$G$-$J$$!W$H(B
$B$$$&$N$b!"J#?t$N(B NFS $B%/%i%$%"%s%H4V$GGSB>@)8f$r$9$k>l9g$N$3$H$G$"$C$F!"(B
$BC10l%[%9%H>e$N%W%m%;%94V$G$NGSB>@)8f$O(B($B$?$H$(!"BP>]$N%U%!%$%k$,(B NFS $B$G(B
$B%^%&%s%H$5$l$?%U%!%$%k%7%9%F%`>e$K$"$C$F$b(B)$B2DG=$JH&$G$9!#(B $B$G$9$+$i!"(B
WWW$B%5!<%P$G$NGSB>@)8f$J$I$K;H$($k$3$H$OB?$$$H;W$$$^$9!#(B

 |$B$?$@$7!"@N$N(BNFS$B$N<BAu$K$OLdBj$,$"$k$b$N$,B?$/!"A4(B
 |$BA3?.MQ$G$-$J$+$C$?$H$$$&OC$O!"3N$+$K$"$j$^$9!#(B:-)
 |$B$G$9$+$i!"$=$&$7$?@NLdBj$,$"$C$?$H$$$&OC$O!"$^$?JL(B
 |$B$H$$$&$3$H$K$7$F2<$5$$!#(B

$B$*$C$7$c$kDL$j$G$9$,!"(BNFS V2 $B>e$G$N(B creat $B$K4X$7$F$O8=:_$b(B($B$?$V$sL$Mh(B
$B$b(B)$B?.MQ$7$J$$J}$,NI$$$H;W$$$^$9!#(B :-)
--
Hiroshi Nakano <nakano@rins.ryukoku.ac.jp>
Ryukoku Univ., Seta, Otsu, Japan
