3. Description detaillee

3.1. Commandes distantes

Si les commandes distantes sont autorisees, la station distante peut
faire executer des commandes au programme. Toutes ces commandes distantes
commencent par un double slash "//". Ce double slash doit etre entre
directement en debut de ligne sinon la commande n'est pas reconnue
comme telle.

Les commandes suivantes sont reconnues :

 //n <texte>                 envoie un texte sur la canal "n"
 //ACT                       visualise la derniere activite sysop,
 //SESSION                   visualise le temps d'utilisation de cette version/session,
 //ONACTIVITY <texte>        fixe le texte qui est envoye pendant une activite sysop,
 //CHat <n/indicatif> <txt>  envoie un texte a un canal ou un indicatif,
 //MSG <n/indicatif> <txt>   similaire a CHat,
 //COMP on/off               marche/arret de la compression Huffman,
 //NAME <nom>                sauve le nom dans la base de donnee,
 //CSTAT                     visualise toutes les connexions actives,
 //MHeard                    visualise la liste des stations entendues,
 //MHeard <nb/texte>         visualise les "nb" stations entendues ou cherche "texte",
 //SHELL                     lance une session shell UNIX,
 //TSHELL                    lance une session shell Unix sans conversion CF/LF,
 //RUN <programme>           execute un programme,
 //RUNT <programme>          execute un programme sans conversion des CR/LF,
 //RUN                       affiche tous les programmes executables,
 //BOX                       lance la messagerie DigiPoint,
 //COOKIE                    envoi d'un cookie,
 //DIR <filtre>              affiche le contenu du repertoire,
 //DIRLONG <filtre>          affiche le contenu du repertoire en format long,
 //FREE                      affiche l'espace disque restant,
 //INFO                      informations sur la station,
 //HELP                      affiche cette aide,
 //NEWS                      affiche les nouvelles de la station,
 //READ <fichier>            lis un fichier,
 //BREAK                     arret de la lecture d'un fichier,
 //WRITE <fichier>           ecrit un fichier sur le disque,
 //CLOSE                     termine l'ecriture d'un fichier,
 //WPRG <fichier>            ecrit un fichier sur le disque en utilisant le
                             protocole AUTOBIN,
 //WPRG <fichier> <rfichier> idem, mais retourne la commande //RPRG <rfichier>,
 //RPRG <fichier>            lit un fichier en utilisant le protocole AUTOBIN,
 //RPRG <fichier> <rfichier> idem, mais retourne la commande //WPRG <rfichier>,
 //WYAPP <fichier>           ecrit le fichier sur le disque en utilisant le
                             protocole Yapp,
 //RYAPP <fichier>           lit le fichier en utilisant le protocole Yapp,
 //VERSION                   affiche la version de ce logiciel,
 //ECHO <texte>              renvoi le texte,
 //TIME                      donne l'heure,
 //RTT                       calcule le temps d'aller retour d'une trame,
 //RING                      fait sonner (appelle le sysop),
 //QUIT                      quitte le logiciel,
 //DISC                      deconnecte "violemment".
 
 //SYSOP                     lance la validation du mot de passe sysop,
 //ROOTSH                    lance un shell avec le statut root,
 //TROOSH                    idem ROOTSH, sans la conversion CR/LF,
 //SOCKET  <adresse_socket>  lance une connexion vers un socket,
 //TSOCKET <adresse_socket>  idem SOCKET, sans la conversion CR/LF,
 //COMMAND <commande>        execute une commande TNT valide.


N'oubliez pas le "//" en debut de commande et de ligne !

----------------------------------------------------------------------------

3.1.1. Niveau d'acces par defaut des commandes distantes

Toutes les commandes distantes sont autorisees a tous (statut NORMAL) sauf
pour les commandes //SHELL, //TSHELL, //ECHO, //COMMAND (statut SYSOP)
et //ROOTSH, //TROOSH, //SOCKET et //TSOCKET (statut root). La commande
//COMP est autorisee meme si les commandes distantes sont interdites
sur la voie courante (statut ALWAYS). Cette configuration par defaut peut
etre changee avec la commande SETACC.

----------------------------------------------------------------------------

3.1.2. Validation du mot de passe sysop  (//SYSOP)

Si la commande distante //sys est recue, la sequence de validation du mot de
passe sysop est demarree. TNT va prendre 5 nombres au hasard avec des valeurs
superieures a la longueur de la chaine de caracteres du mot de passe de la
station distante. La station distante doit repondre avec les 5 caracteres
correspondants.
Les caracteres peuvent avoir n'importe quelle position dans la chaine
aleatoire pour accroitre la difficulte de pirater le mot de passe. De plus,
il n'y a pas de reponse signalant si la commande //SYS a ete passee
correctement, le statut est change seulement en interne.
Pour cela, il est conseille d'envoyer 3 fois ou meme plus la commande //sys
avec une seule reponse correcte pour brouiller les pistes. Cela rendra le
piratage du mot de passe presque impossible. L'algorithme du mot de passe est
compatible avec celui utilise par TheNet.

----------------------------------------------------------------------------

3.1.3. Shell avec l'autorisation du root (//ROOTSH)

Cette commande est tres dangereuse, verifiez qu'elle n'est accessible qu'au
bonnes personnes apres la validation du mot de passe.
Si vous ne voulez pas autoriser cette commande, definissez la avec le statut
ROOT et definissez le drapeau sysop root pour tous les indicatifs a 0 dans
le fichier tnt_sysfile.

----------------------------------------------------------------------------

3.1.4. Connexion Socket (//SOCKET)

Cette commande autorise des connexions sur tous les sockets de votre
systeme. Cette commande est assez dangereuse, changer le statut ROOT
n'est pas recommande. SI vous voulez autoriser des connexion sur
des sockets specifiques, utilisez la commande a distance etendue.
('tnt_extremotefile').

----------------------------------------------------------------------------

3.1.5. La commande dangereuse //ECHO

Il existe des bulletins pirates se promenant sur le reseau des BBS qui
utilisent la commande distante //ECHO pour vous faire envoyer un bulletin
avec un contenu offensant.
Pour cela, j'ai change le niveau d'acces de la commande //ECHO au niveau
SYSOP. Si vous nommez tous les BBS sur lesquels vous travaillez dans le
fichier 'tnt_noremfile' ou si vous desactivez toutes les commandes distantes
avec la commande REMALLOW pour le canal avec lequel vous connecter les BBS,
vous pouvez remettre le niveau d'acces de la commande distante //ECHO a
NORMAL.
Mais faites tres attention avec cette commande ! Sinon, il se pourrait qu'un
message offensant soit forwarde mondialement avec VOTRE indicatif !!!

----------------------------------------------------------------------------

3.1.6. Creer de nouvelles commandes a distance

Pour ajouter facilement des commandes a distance, une commande inconnue
et utilisee comme parametre de //RUN. Par exemple une commande //FOOBAR
sera traduite en //RUN FOOBAR. Si le rpogramme FOOBAR existe dans 'run_dir'
il sera execute. Si le programme n'existe pas, l'utilisateur sera informe
d'une commande a distance erronee.

----------------------------------------------------------------------------

3.1.7. Commandes a distances etendues

Le principe decrit precedemment permet de creer de nouvelle commandes a
distance en mettant un programme dans le repertoire 'run_dir'. Si des
parametres optionnels sont nescessaires ou qu'ils ne peuvent etre
implementes par le programme, la commande a distance etendue peut etre
utilisee.

Une nouvelle commande a distance etendue se resume a une commande a
distance avec des parametres. De plus, le niveau d'acces et le nombre
de caracteres significatifs est defini. Toutes les donnes sont stockees
dans le fichier 'tnt_extremotefile'.

Le contenu de ce fichier peut etre visualise par la commande LSEXTREM.
Quand le fichier a ete modifie, il peut etre relu avec LDEXTREM.



Retour index