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


Hosted by www.Geocities.ws

1