<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE> Remote X Apps mini-HOWTO : $BJL$N%f!<%6(B ID $B$+$i$N(B X $B%"%W%j%1!<%7%g%s(B</TITLE> <LINK HREF="Remote-X-Apps-8.html" REL=next> <LINK HREF="Remote-X-Apps-6.html" REL=previous> <LINK HREF="Remote-X-Apps.html#toc7" REL=contents> </HEAD> <BODY> <A HREF="Remote-X-Apps-8.html">$B<!$N%Z!<%8(B</A> <A HREF="Remote-X-Apps-6.html">$BA0$N%Z!<%8(B</A> <A HREF="Remote-X-Apps.html#toc7">$BL\<!$X(B</A> <HR> <H2><A NAME="s7">7. $BJL$N%f!<%6(B ID $B$+$i$N(B X $B%"%W%j%1!<%7%g%s(B</A></H2> <P>root $BFC8"$NI,MW$J!"%0%i%U%#%+%k$J@_Dj%D!<%k$r<B9T$7$?$$$H$7$^$7$g$&!#$7$+$7!"(B X $B%;%C%7%g%s$OIaDL$N%"%+%&%s%H$G<B9T$7$F$$$^$9!#;O$a$O4qL/$K;W$&$+$b(B $B$7$l$^$;$s$,!"(BX $B%5!<%P$O%D!<%k$,%G%#%9%W%l%$$K%"%/%;%9$9$k$3$H$r5v$7$^$;$s!#(B root $B$GIaDL$K2?$+$7$?$$;~$K!"$I$&$9$l$P2DG=$G$9$+!)(B $B$=$7$F$I$&$9$l$P$3$NLdBj$r2sHr$G$-$^$9$+!)(B <P> <P>$B%f!<%6(B ID <CODE>clientuser</CODE> $B$G(B X $B%"%W%j%1!<%7%g%s$r5/F0$7$?$$$,(B X $B%;%C%7%g%s$O(B <CODE>serveruser</CODE> $B$G5/F0$5$l$F$$$k$H$$$&!"0lHLE*$J>u67$K$7$^$7$g$&!#%/%C%-!<$N(B $B%;%/%7%g%s$rFI$s$G$$$l$P!"$J$<(B <CODE>clientuser</CODE> $B$,%G%#%9%W%l%$$K(B $B%"%/%;%9$G$-$J$$$N$+J,$+$k$O$:$G$9!#(B <BLOCKQUOTE> <CODE>~clientuser/.Xauthority</CODE> $B$O%G%#%9%W%l%$$K%"%/%;%9$9$k$?$a$N(B $B@5$7$$%^%8%C%/%/%C%-!<$r4^$s$G$$$^$;$s!#@5$7$$%/%C%-!<$O(B <CODE>~serveruser/.Xauthority</CODE> $B$K$"$j$^$9!#(B </BLOCKQUOTE> <P> <H2><A NAME="ss7.1">7.1 $BF10l%[%9%H>e$N0[$J$k%f!<%6(B</A> </H2> <P>$B$b$A$m$s!"%j%b!<%H(B X $B$GF0:n$9$k$b$N$O!"0[$J$k%f!<%6(B ID $B$N(B X $B$G$bF1$8$h$&$K(B $BF0:n$7$^$9(B ($BC<E*$K$O(B <CODE>slogin localhost -l clientuser</CODE>)$B!#(B $B%/%i%$%"%s%H%[%9%H$H%5!<%P%[%9%H$,$?$^$?$^F1$8$@$H$$$&$@$1$G$9!#$7$+$7!"(B $BN>J}$N%[%9%H$,F1$8;~!"%^%8%C%/%/%C%-!<$NE>Aw$K$O6aF;$,$"$j$^$9!#(B <P> <P>$B%f!<%6(B ID $B$N@Z$jBX$($K(B <CODE>su</CODE> $B$r;H$&$H2>Dj$7$^$9!#(B $B4pK\E*$K!"9T$o$J$1$l$P$J$i$J$$$3$H$O!"(B<CODE>su</CODE> $B$r8F$V%9%/%j%W%H$r=q$-!"(B $B$=$3$G(B <CODE>su</CODE> $B$N9T$&%3%^%s%I$r!"%j%b!<%H(B X $B$KI,MW$J=hM}$r9T$&(B $BE,@Z$J%3!<%I$G%i%C%W$9$k$3$H$G$9!#(B $BI,MW$J=hM}$H$O(B <CODE>DISPLAY</CODE> $BJQ?t$N@_Dj$H%^%8%C%/%/%C%-!<$NE>Aw$G$9!#(B <P> <P><CODE>DISPLAY</CODE> $B$N@_Dj$OHf3SE*4JC1$G$9!=!=(Bsu $B%3%^%s%I$r<B9T$9$kA0$K!"(B $B$=$N0z?t$H$7$F(B <CODE>DISPLAY="$DISPLAY"</CODE> $B$rDj5A$9$k$@$1$G$9!#(B $B0J2<$N$h$&$K$7$^$9!#(B <P> <BLOCKQUOTE><CODE> <PRE> su - clientuser -c "env DISPLAY=$DISPLAY clientprogram &" </PRE> </CODE></BLOCKQUOTE> <P> <P>$B$3$l$@$1$G$OF0:n$7$^$;$s!#$5$i$K%/%C%-!<$NE>Aw$r9T$&I,MW$,$"$j$^$9!#(B $B%/%C%-!<$N<hF@$O(B <CODE>xauth list "$DISPLAY"</CODE> $B$r;H$($P2DG=$G$9!#(B $B$3$N%3%^%s%I$,%/%C%-!<$N%j%9%H$KMQ$$$k=q<0$O!"$?$^$?$^(B <CODE>xauth add</CODE> $B%3%^%s%I$KM?$($k:]$N=q<0$K9gCW$7$F$$$^$9(B $B!=!=$A$g$&$II,MW$H$7$F$$$?$b$N$G$9!#(B <P>$BEvA3%Q%$%W$G%/%C%-!<$rEO$7$?$$$H$3$m$G$9!#;DG0$J$,$i!"(B<CODE>su</CODE> $B$O(B $B$=$NI8=`F~NO$+$i%Q%9%o!<%I$rFI$b$&$H$9$k$N$G!"(B<CODE>su</CODE> $B%3%^%s%I$K%Q%$%W$GEO$9(B $B$3$H$O4JC1$G$O$"$j$^$;$s!#$3$3$G$bET9g$N$$$$$3$H$K$O!"(B $B%7%'%k%9%/%j%W%H$NFbIt$G$O(B $B%U%!%$%k5-=R;R$r$$$8$j2s$9$3$H$,$G$-$^$9$N$G!"$3$l$,2DG=$K$J$j$^$9!#(B <P><CODE>clientuser</CODE> $B$H(B <CODE>clientprogram</CODE> $B$r%Q%i%a!<%?2=$7HFMQ2=$7$?%9%/%j%W%H$r(B $B=q$-$^$9!#FI$_$d$9$5$O>/$75>@7$K$7$F4h6/$K$J$k$h$&$K!"%9%/%j%W%H$r2~A1(B $B$7$^$7$g$&!#0J2<$N$h$&$K$J$j$^$9!#(B <P> <BLOCKQUOTE><CODE> <PRE> #!/bin/sh if [ $# -lt 2 ] then echo "usage: `basename $0` clientuser command" >&2 exit 2 fi CLIENTUSER="$1" shift # FD 4 becomes stdin too exec 4>&0 xauth list "$DISPLAY" | sed -e 's/^/add /' | { # FD 3 becomes xauth output # FD 0 becomes stdin again # FD 4 is closed exec 3>&0 0>&4 4>&- exec su - "$CLIENTUSER" -c \ "xauth -q <&3 exec env DISPLAY='$DISPLAY' "'"$SHELL"'" -c '$*' 3>&-" } </PRE> </CODE></BLOCKQUOTE> <P>$B$[$H$s$I$N>u67$G!"0\?"@-$HF0:n$K==J,$@$H9M$($^$9!#(B $B8=:_Cx<T$,9M$($&$k7gE@$O!"(B<CODE>'$*'</CODE> $B$r;H$C$F$$$k$?$a!"(B <CODE>command</CODE> $BFbIt$G%7%s%0%k%/%)!<%H$rMQ$$$k$H(B <CODE>su</CODE> $B%3%^%s%I$N0z?t(B (<CODE>'$*'</CODE>) $B$,2u$l$F$7$^$&$3$H$G$9!#(B $B$b$7B>$K$b$J$K$+?<9o$J4V0c$$$,$"$C$?$i!"Cx<T$K(B email $B$r=q$-Aw$C$F(B $B$/$@$5$$!#(B <P> <P>$B%9%/%j%W%H$r(B <CODE>/usr/local/bin/xsu</CODE> $B$H$9$l$P(B <P> <BLOCKQUOTE><CODE> <PRE> xsu clientuser 'command &' </PRE> </CODE></BLOCKQUOTE> <P>$B$H$G$-$^$9!#(B <P> <P>$B%Q%9%o!<%I$r;H$&8B$j!"$3$l0J>e$=$&4JC1$K$O$G$-$^$;$s!#(B $B$($(!"(B(<CODE>sudo</CODE>) $B$r;H$&J}K!$b$"$j$^$9$M!#$G$b$3$3$G$O07$$$^$;$s!#(B <P> <H2><A NAME="ss7.2">7.2 $B%/%i%$%"%s%H%f!<%6$,(B root</A> </H2> <P>$BEvA3!"(Broot $B$G$O$J$$%/%i%$%"%s%H%f!<%6$,(B root $B$GF0:n$9$k$3$H$bF1MM$K$G$-$^$9!#(B $B$7$+$7!"(Broot $B$O$9$Y$F$N?M$N(B <CODE>~/.Xauthority</CODE> $B%U%!%$%k$rFI$`$3$H$,(B $B$G$-$k$N$G!"(Broot $B$N>l9g$O$h$j4JC1$G$9!#%/%C%-!<$rAw$kI,MW$,$"$j$^$;$s!#(B <CODE>DISPLAY</CODE> $B4D6-JQ?t$r@_Dj$7!"(B<CODE>XAUTHORITY</CODE> $B$,(B <CODE>~serveruser/.Xauthority</CODE> $B$r8+$k$h$&$K@_Dj$9$k$@$1$G$9!#$D$^$j(B: <P> <P> <BLOCKQUOTE><CODE> <PRE> su - -c "exec env DISPLAY='$DISPLAY' \ XAUTHORITY='${XAUTHORITY-$HOME/.Xauthority}' \ command" </PRE> </CODE></BLOCKQUOTE> <P> <P>$B$3$l$r%9%/%j%W%HCf$K=q$/$H0J2<$N$h$&$K$J$k$G$7$g$&!#(B <P> <BLOCKQUOTE><CODE> <PRE> #!/bin/sh if [ $# -lt 1 ] then echo "usage: `basename $0` command" >&2 exit 2 fi su - -c "exec env DISPLAY='$DISPLAY' \ XAUTHORITY='${XAUTHORITY-$HOME/.Xauthority}' \ "'"$SHELL"'" -c '$*'" </PRE> </CODE></BLOCKQUOTE> <P> <P>$B%9%/%j%W%H$r(B <CODE>/usr/local/bin/xroot</CODE> $B$H$9$l$P(B <P> <BLOCKQUOTE><CODE> <PRE> xroot 'control-panel &' </PRE> </CODE></BLOCKQUOTE> <P>$B$H$G$-$^$9!#(B <P> <P>$B$G$b!"$b$7(B <CODE>xsu</CODE> $B$r$9$G$K@_Dj$7$F$"$l$P!"(B $B$3$N$h$&$K$7$J$1$l$P$J$i$J$$M}M3$O$"$j$^$;$s!#(B <P> <HR> <A HREF="Remote-X-Apps-8.html">$B<!$N%Z!<%8(B</A> <A HREF="Remote-X-Apps-6.html">$BA0$N%Z!<%8(B</A> <A HREF="Remote-X-Apps.html#toc7">$BL\<!$X(B</A> </BODY> </HTML>