28. $B@)8B

$B7Y9p(B: Python 2.3 $B$G$O!"4{CN$NMF0W$K=$@5$G$-$J$$%;%-%e%j%F%#!<%[!<%k(B $B$N$?$a$K!"$3$l$i$N%b%8%e!<%k$OL58z$K$5$l$F$$$^$9!#(B rexec $B$d(B Bastion $B%b%8%e!<%k$r;H$C$?8E$$%3!<%I(B $B$rFI$`$H$-$K=u$1$K$J$k$h$&!"%b%8%e!<%k$N%I%-%e%a%s%H$@$1$O(B $B;D$5$l$F$$$^$9!#(B

$B@)8B $B$H$O!"?.Mj$G$-$k%3!<%I(B $B$H?.Mj$G$-$J$$%3!<%I$r6hJL$G$-$k$h$&$K$9$k$?$a$N(B Python $B$K$*$1$k(B $B4pK\E*$J%U%l!<%`%o!<%/$G$9!#$3$N%U%l!<%`%o!<%/$O!"?.Mj$G$-$k(B Python $B%3!<%I(B ($B%9!<%Q%P%$%6(B (supervisor)) $B$,!"(B $B%Q!<%_%C%7%g%s$K@)8B$N$+$1$i$l$?(B ``$B94B+%;%k(B (padded cell)'' $B$r@8@.$7!"$3$N%;%kCf$G?.Mj$N$*$1$J$$%3!<%I$r.$5$l$k$3$H$O$"$k$,7h$7$F3HBg$5$l$k$3$H$N$J$$FC8"$r;}$C$?(B $B%5%V%;%k$r@8@.$7$^$9!#(B

Python $B$N@)8BA0$r;}$D$H$$$&$3$H$G$9!#$3$N$?$a!"@)8B$5$l$?4D6-$GF0:n(B $B$9$k$h$&@_7W$5$l$?%3!<%I$r=q$/>e$GFCl9g!"%9!<%Q%P%$%6$OAH$_9~$_$N(B open() $B4X?t$K$D$$$F!"(Bmode $B%Q%i%a%?$,(B 'w' $B$N;~$KNc30$rAw=P$9$k$h$&$K:FDj5A$G$-$^$9!#$^$?Nc$($P!"(B``$B0BA4(B'' $B$H$O!"(B filename $B%Q%i%a%?$KBP$7$F(B chroot() $B$K;w$?(B $BA`:n$r;\$7$F!"%k!<%H%Q%9$,%U%!%$%k%7%9%F%`>e$N2?$i$+$N0BA4$J(B ``$B:=>l(B (sandbox)'' $BNN0h$KBP$9$kAjBP%Q%9$K$J$k$h$&$K$9$k$3$H$+$b(B $B$7$l$^$;$s!#$3$N>l9g$G$b!"?.Mj$5$l$J$$%3!<%I$O0MA3$H$7$F!"(B $B$b$H$N8F$S=P$7%$%s%?%U%'!<%9$r;}$C$?$^$^$NAH$_9~$_$N(Bopen() $B4X?t$r@)8B4D6-Cf$K8+=P$7$^$9!#$3$3$G$O!"4X?t$KBP$9$k0UL#IU$1(B (semantics) $B$OF1$8$G$9$,!"5v2D$5$l$J$$%Q%i%a%?$,;H$o$l$h$&$H$7$F$$$k(B $B$H%9!<%Q%P%$%6$,H=CG$7$?>l9g$K$O(B IOError $B$,Aw=P$5$l$^$9!#(B

Python $B$N%i%s%?%$%`%7%9%F%`$O!"FCDj$N%3!<%I%V%m%C%/$,@)8B__builtins__ $B%*%V%8%'%/%H$N0l0U@-$r$b$H$KH=CG$7$^$9(B: $B%*%V%8%'%/%H$,(B $BI8=`$N(B __builtin__ $B%b%8%e!<%k(B ($B$N<-=q(B) $B$N>l9g!"(B $B%3!<%I$OHs@)8B2<$K$"$k$H$_$J$5$l$^$9!#$=$l0J30$O@)8B2<$K$"$k$H(B $B$_$J$5$l$^$9!#(B

$B@)8BLL$7$^$9!#Nc$($P!"4X?t%*%V%8%'%/%H(B $BB0@-(B func_globals $B$d!"%/%i%9$*$h$S%$%s%9%?%s%9%*%V%8%'%/%H$N(B $BB0@-(B __dict__ $B$OMxMQ$G$-$^$;$s!#(B

$BFs$D$N%b%8%e!<%k$,!"@)8Be$2$k$?$a$N%U%l!<%`%o!<%/$r(B $BDs6!$7$F$$$^$9(B:

rexec   基本的な制限実行フレームワーク。
Bastion   オブジェクトに対するアクセスの制限を提供する。

$B;29M(B:

Grail Home Page
Python $B$G=q$+$l$?%$%s%?!<%M%C%H%V%i%&%6(B Grail $B$G$9!#(BPython $B$G=q$+$l$?%"%W%l%C%H$r%5%]!<%H$9$k$?$a$K!">e5-$N%b%8%e!<%k$r;H$C$F$$$^$9!#(BGrail $B$K$*$1$k(B Python $B@)8B\$7$$>pJs$O!"(BWeb $B%5%$%H$GF~
$B$40U8+$d$4;XE&$r$*4s$;$K$J$j$?$$J}$O!"(B $B$3$N%I%-%e%a%s%H$K$D$$$F(B... $B$r$4Mw$/$@$5$$!#(B