Ejemplo de la escritura de un modulo
En el codigo que visualizamos en la
parte inferior, tiene la funcion de apagar el servidor de impresion de
nuestra oficina, por sencillo que esto paresca no deja de ser un
proceso potencialmente peligroso para un usuario inexperto o malicioso
con privilegios de root.
Por lo tanto se me ocurrio escribir este modulito, el cual
acompañe de algunos comentarios
index.cgi
#!/usr/bin/perl
# index.cgi
# Modulo de Apagado
#Primero incluiremos el archivo de
cabecera web-lib.pl , localizado en nuestro directorio webmin.
#Despues sera necesario darle una funcion de encabezado proporcionada
por webmin
do '../web-lib.pl';
&header($text{'index_title'}, "", undef, 0, 1);
#La funcion hostname , pasa el nombre
del computador webmin a la variable HOST
$HOST=&hostname();
#El HTML que visualizara el Browser
local sera un simple print de perl
#NOTA: No escribas lineas print como esta print "Mi "cadena" " , eso
provocaria un
#ERROR de ejecucion en perl.
print "<h1>Apagado de su Servidor Linux Aullox --
$HOST</h1><P>";
print "<pre>
Desar proceder con el Apagado del mismo?
</pre>";
print "<CENTER>
<TABLE BORDER=0>
<CENTER><FORM METHOD=POST ACTION=./apagado.cgi>
<INPUT TYPE=SUBMIT VALUE=Aceptar></FORM></CENTER>
<P>
<CENTER><FORM METHOD=POST ACTION=http://localhost:10000>
<INPUT TYPE=SUBMIT VALUE=Cancelar></FORM></CENTER>
</TABLE>
</CENTER>";
print "<pre>
El equipo se apagara. Sera necesaria la intervencion fisica del usuario
para reactivarlo.<P>
</pre>";
print "<P><P><HR> <HR size=10><P>";
print "<pre>
Modulo webmin desarrollado por Edwin Plauchu. Derechos sobre copia
Grupo Aullox.<P>
</pre>";
#Todo encabezado tiene su pie de pagina !, webmin nos probee de esta
funcion
#Es necesario incluir en todos los archivos cgi que manejemos dentro de
webmin
#un encabezado y un pie de pagina.
&footer("", $text{'index_return'}
);
apagado.cgi
#!/usr/bin/perl
do '../web-lib.pl';
&header($text{'index_title'}, "", undef, 0, 1);
$HOST=&hostname();
#Mensaje a mostrarce en equipo remoto al momento de ejecutarce esta
secuencia cgi
print "<h1>Servidor Linux Aullox -- $HOST apagado
</h1><P>";
print "<pre>
Es necesaria la intervencion fisica del usuario para reactivarlo
</pre>";
# La funcion exec realizara la ejecucion que sea con permisos de
superusuario.
exec("/sbin/shutdown -h now");
&footer("", $text{'index_return'});
Atras |
Contenido |
Siguiente |