El protocolo de noticias Usenet reconoce artículos de una categoría especial, los cuales provocan ciertas respuestas o acciones del sistema. Estos son los llamados mensajes de control. Se reconocen por la presencia de un campo Control: en la cabecera del artículo, el cual contiene el nombre de la operación de control a realizar. Existen varios tipos, y todas ellas son manejadas por guiones del intérprete de órdenes situados en /usr/lib/news/ctl.
La mayoría de éstos realizarán su acción automáticamente en el momento en que C-News procese el artículo, sin notificar al administrador de noticias. Por omisión, sólo los mensajes checkgroups serán entregados al administrador de noticias, pero puede cambiar esto editando los guiones.
El mensaje más conocido es cancel, con el cual un usuario puede cancelar un artículo enviado por él en otro momento. Esto borra el artículo de los directorios de cola, si existe. El mensaje cancel se reenvía a todos los servidores que reciben noticias de los grupos afectados, sin reparar si el artículo ha sido visto o no. Esto es para tener en cuenta la posibilidad de que el artículo original se haya retrasado sobre el mensaje de cancelación. Algunos sistemas de noticias permiten a los usuarios cancelar los mensajes de otras personas. Por supuesto esto es algo que no se debería hacer.
Dos mensajes que se ocupan de la creación y borrado de grupos de noticias son los mensajes newgroup y rmgroup. Los grupos de noticias bajo la las jerarquías “usuales” solo pueden ser creados después de que haya mantenido una discusión y voto entre los lectores de Usenet. Las reglas aplicadas a la jerarquía alt permiten algo similar a la anarquía. Para más información, ver los mensajes regulares publicados en news.announce.newusers y en news.announce.newgroups. Nunca envíe un mensaje newgroup o rmgroup usted mismo a menos que sepa con seguridad que tiene permiso para hacerlo.
Los mensajes checkgroups son enviados por los administradores de noticias para hacer que todos los servidores de una red sincronicen sus ficheros active con la realidad de Usenet. Por ejemplo, los proveedores de servicio de Internet deberían mandar tal mensaje a los servidores de sus clientes. Una vez al mes, el moderador del grupo comp.announce.newgroups envía el mensaje “oficial” checkgroups para las principales jerarquías. Sin embargo, se envía como un artículo ordinario, no como un mensaje de control. Para realizar la operación checkgroups , salve este artículo en un fichero, digamos /tmp/check, borre todo hasta el principio del mismo mensaje de control, y envíelo al guión checkgroups usando la orden siguiente:
# su news -c "/usr/lib/news/ctl/checkgroups" < /tmp/check |
Esto actualizará su fichero newsgroups, añadiendo los grupos listados en localgroups. El antiguo fichero newsgroups será movido a newsgroups.bac. Note que rara vez funciona el enviar el mensaje localmente, ya que inews, rechaza un artículo tan grande.
Si C-News encuentra desigualdades entre la lista del fichero checkgroups y el fichero active, producirá una lista de órdenes que actualizaría su servidor, y lo enviará por correo al administrado de noticias.
Típicamente la salida se parece a esto:
From news Sun Jan 30 16:18:11 1994 Date: Sun, 30 Jan 94 16:18 MET From: news (News Subsystem) To: usenet Subject: Problems with your active file The following newsgroups are not valid and should be removed. alt.ascii-art bionet.molbio.gene-org comp.windows.x.intrisics de.answers You can do this by executing the commands: /usr/lib/news/maint/delgroup alt.ascii-art /usr/lib/news/maint/delgroup bionet.molbio.gene-org /usr/lib/news/maint/delgroup comp.windows.x.intrisics /usr/lib/news/maint/delgroup de.answers The following newsgroups were missing. comp.binaries.cbm comp.databases.rdb comp.os.geos comp.os.qnx comp.unix.user-friendly misc.legal.moderated news.newsites soc.culture.scientists talk.politics.crypto talk.politics.tibet |
Cuando reciba un mensaje como éste de su sistema de noticias, no lo crea ciegamente. Dependiendo de quién envió el mensaje checkgroups, puede que carezca de unos pocos grupos e incluso jerarquías enteras; por lo tanto, debería tener cuidado al borrar cualquier grupo. Si encuentra grupos listados como no presentes que quiera tener en su servidor, tiene que añadirlos usando el guión addgroup. Salve la lista de grupos que le faltan en un fichero y páseselo al siguiente guión:
#!/bin/sh # WHOIAM=`whoami` if [ "$WHOIAM" != "news" ] then echo "Debe ejecutar $0 como usuario 'news'" >&2 exit 1 fi # cd /usr/lib/news while read group; do if grep -si "^$group[[:space:]].*moderated" newsgroup; then mod=m else mod=y fi /usr/lib/news/maint/addgroup $group $mod done |
Finalmente, hay tres mensajes que pueden usarse para averiguar la topología de la red. Estos son sendsys, version, y senduuname. Respectivamente, hacen que C-News devuelva al remitente el fichero sys, una cadena con la versión del software, y la salida de uuname. C-News es muy lacónica con respecto a los mensajes version; ya que devuelve una simple C, sin más adornos.
Nuevamente, nunca debería distribuir tales mensajes, a menos que esté seguro de que no pueden salir de su red (regional). Las respuestas a los mensajes sendsys pueden hacer caer rápidamente a una red UUCP. [1]
[1] | Yo tampoco intentaría esto en Internet. |