%%
%%

\chapter{Configuration de la Console}
\label{ConsoleConfChapter}
\index[general]{Configuration!Console}
\index[general]{Configuration de la Console}

\section{General}
\index[general]{General}

Le fichier de configuration de la console est le plus simple de tous, et en g\'en\'eral, 
vous n'aurez rien d'autre \`a changer que le mot de passe. Il contient simplement les 
informations n\'ecessaires pour se connecter au(x) Director(s).

Pour une discussion g\'en\'erale sur les fichiers de configuration et leurs ressources  
ainsi que les types de donn\'ees reconnus par {\bf Bacula}, consultez le chapitre 
\ilink{Configuration}{ConfigureChapter} de ce manuel.
 
Les ressources Console suivantes doivent \^etre d\'efinies :

\section{La ressource Director}
\label{DirectorResource3}
\index[general]{Director Ressource}
\index[general]{Ressource!Director}

La ressource Director d\'efinit les attributs du Director ex\'ecut\'e sur le r\'eseau. 
Vous pouvez avoir plusieurs ressources Director dans un seul fichier de 
configuration de console. Dans ce cas, le programme Console vous demandera 
de choisir \`a son lancement le Director vous voulez contacter.

\begin{description}

\item [Director]
   \index[console]{Director}
   D\'ebut des directives relatives au Director.

\item [Name = \lt{}name\gt{}]
   \index[console]{Name}
   Le nom du Director utilis\'e pour choisir entre les diff\'erents Directors. 
   (ce nom n'est utilis\'e que pour \c{c}a).
 
\item [DIRPort = \lt{}port-number\gt{}]
   \index[dir]{DIRPort}
   Sp\'ecifie le num\'ero de port \`a utiliser pour contacter le Director. cette valeur 
   sera fort probablement d\'ej\`a \'egale \`a celle que vous avez sp\'ecifi\'ee pour 
   l'option {\bf \verb:--:with-base-port} de la commande {\bf configure}. Ce 
   port doit \^etre identique \`a celui sp\'ecifi\'e par la directive {\bf DIRport} de la 
   ressource {\bf Director} du fichier de \ilink{configuration du Director}{DirectorChapter}. 
   La valeur par d\'efaut est 9101, aussi cet directive n'est normalement pas 
   sp\'ecifi\'ee.
   
\item [Address = \lt{}address\gt{}]
   \index[dir]{Address}
   O\`u "adress" est un nom d'h\^ote, un nom de domaine pleinement qualifi\'e, ou une 
   adresse r\'eseau utlis\'ee pour se connecter au Director.

\item [Password = \lt{}password\gt{}]
   \index[dir]{Password}
   Ce mot de passe est celui exig\'e par le Director pour accepter la connexion 
   d'une console. Il doit \^etre identique \`a celui sp\'ecifi\'e dans la ressource Director 
   du fichier de \ilink{configuration du Director}{DirectorChapter}. Cette directive 
   est requise.

\end{description}

Voici un exemple r\'eel :

\footnotesize
\begin{verbatim}
Director {
  Name = HeadMan
  address = rufus.cats.com
  password = xyz1erploit
}
\end{verbatim}
\normalsize

\section{La ressource ConsoleFont}
\index[general]{Ressource!ConsoleFont}
\index[general]{Ressource ConsoleFont}

Cette ressource n'est disponible que dans la version GNOME de la console. 
Elle vous permet de d\'efinir les fontes que vous voulez utiliser pour 
l'affichage dans la fen\^etre principale.

\begin{description}

\item [ConsoleFont]
   \index[console]{ConsoleFont}
   D\'ebut des directives  ConsoleFont.

\item [Name = \lt{}name\gt{}]
   \index[console]{Name}
   Le nom de la fonte.

\item [Font = \lt{}Pango Font Name\gt{}]
   \index[console]{Font}
   La cha\^ine sp\'ecifi\'ee ici d\'efinit la fonte d\'esir\'ee. Elle est sp\'ecifi\'ee au 
   format Pango. Par exemple, la sp\'ecification par d\'efaut est :

\footnotesize
\begin{verbatim}
Font = "LucidaTypewriter 9"
\end{verbatim}
\normalsize

\end{description}

Merci \`a Phil Stracchino d'avoir fourni le code pour cette fonctionnalit\'e.

Un autre exemple :

\footnotesize
\begin{verbatim}
ConsoleFont {
  Name = Default
Font = "Monospace 10"
}
\end{verbatim}
\normalsize

\section{La ressource Console}
\label{ConsoleResource}
\index[general]{ressource Console}
\index[general]{Ressource!Console}

Depuis la version 1.33 de Bacula, il existe trois types de consoles 
diff\'erents avec lesquels l'administrateur ou l'utilisateur peut 
interagir avec le Director. Ces trois types de consoles comportent 
trois niveaux de s\'ecurit\'e.

\begin{itemize}
\item Le premier type de console est la console {\bf anonyme} ou 
  {\bf par d\'efaut}, qui poss\`ede les pleins pouvoirs. Aucune ressource console 
  n'est requise pour ce premier type puisque le mot de passe est sp\'ecifi\'e dans 
  la ressource Director. Ce type de console est le premier \`a avoir \'et\'e 
  impl\'ement\'e, et demeure fonctionnel. Vous le r\'eserverez, typiquement, \`a 
  l'usage exclusif des administrateurs.

\item Le second type, apparu avec la version 1.33, est une console "nomm\'ee" 
  ou "restreinte" d\'efinie dans des ressources Console dans les fichiers de configuration du 
  Director et dans celui de la console. Les noms et mot de passe dans ces 
  deux fichiers doivent correspondre, comme c'est le cas pour les programmes 
  clients.

  Ce second type de console ne poss\`ede, par d\'efaut, aucun privil\`ege. Pour lui 
  en accorder, vous devez les sp\'ecifier explicitement dans la ressource 
  Console du Director.  
  
  Ainsi, vous pouvez avoir plusieurs consoles avec des 
  noms et mots de passe distincts et avec, pour chacune, des privil\`eges 
  diff\'erents. Ces consoles ne peuvent, par d\'efaut, absolument rien faire. 
  C'est vous qui leur accordez des privil\`eges, ou plut\^ot l'acc\`es \`a des 
  commandes et ressources en sp\'ecifiant des listes de contr\^ole d'acc\`es 
  dans la ressource Console du Director. L'administrateur peut ainsi contrôler 
  finement les actions permises à des consoles (ou utilisateurs) particuliers.
  
\item Le troisi\`eme type de console ressemble au pr\'ec\'edent en ce qu'il requiert 
  une d\'efinition de ressource Console dans le fichier de configuration du 
  Director et dans celui de la console. Mais cette console permet aussi, si 
  le nom de la console (la directive {\bf name}) est le m\^eme que celui du client, 
  d'utiliser la commande {\bf SetIP} pour changer la valeur de la directive 
  {\bf Address} dans la ressource client du Director en l'adresse de la console. 
  Ceci permet aux portables et autres machines utilisant DHCP (adresses IP 
  dynamiques) de notifier au Director leur adresse IP courante.

\end{itemize}

La ressource Console est optionnelle. Cependant, si elle est sp\'ecifi\'ee, 
vous pouvez utiliser les ACLs (listes de contr\^ole d'acc\`es) dans le fichier 
de configuration du Director pour restreindre une console particuli\`ere 
ou un utilisateur pour qu'ils ne voient que les informations relatives 
\`a ses jobs ou \`a sa machine cliente.

Vous pouvez spécifier autant de ressources Console que vous voulez dans 
le fichier de configuration de la console. Cependant, si vous avez plusieurs 
ressources Director (c'est à dire si vous vous connectez à plusieurs directors 
distincts), vous pouvez associer l'une de ces ressources Console à une ressource 
Director particulière. Ainsi, lorsque vous choisirez un Director particulier, 
la configuration de console appropriée sera utilisée. Consultez le paragraphe 
ci-dessous sur la directive "Director" de la ressource Console pour plus 
d'informations sur le sujet.

\begin{description}
\item [Console]
   \index[console]{Console}
   D\'ebut de la ressource Console.

\item [Name = \lt{}name\gt{}]
   \index[console]{Name}
   Le nom de console utilisé pour permettre à une console restreinte de 
   changer d'adresse IP à l'aide de la commande {\bf SetIp}. La commande 
   SetIp doit aussi être définie dans la liste d'accès {\bf CommandACL} 
   du fichier de configuration du Director.

\item [Password = \lt{}password\gt{}]
   \index[console]{Password}
   Si ce champ est renseigné, le mot de passe spécifié au niveau de la ressource 
   Director du fichier de configuration de la console est ignoré. Voyez 
   ci-dessous pour plus de détails.

\item [Director = \lt{}director-resource-name\gt{}]
   Si cette directive est spécifiée, cette ressource de Console sera utilisée 
   par bconsole lorsque ce Director particulier sera sélectionné au 
   lancement de bconsole. Autrement dit, cette directive lie une console 
   particulière avec son nom et son mot de passe à un Director particulier. 

\item [Heartbeat Interval = \lt{}time-interval\gt{}]
   \index[console]{Heartbeat Interval}
   \index[console]{Directive!Heartbeat}
   Cette directive est orpionnelle. Si elle est utilisée, elle fixe un délai 
   {\it keepalive} -- ou {\it heartbeat} -- en secondes sur chacun des 
   {\it sockets} pour communiquer avec le Director. Cette fonctionnalité 
   n'est implémentée que sur les systèmes qui fournissent la fonction 
    {\bf setsockopt} TCP\_KEEPIDLE (Par exemple Linux). La valeur par 
   défaut est 0, ce qui signifie que le {\it socket} n'est pas modifié. 

\end{description}
                
L'exemple ci-dessous nous a \'et\'e fournit par Phil Stracchino. Si nous 
d\'efinissons ce qui suit dans le fichier bconsole.conf (ou bwx-console.conf) 
d'un utilisateur :

\footnotesize
\begin{verbatim}
 Director {
   Name = MyDirector
   DIRport = 9101
   Address = myserver
   Password = "XXXXXXXXXXX"    # no, really.  this is not obfuscation.
}
 
 Console {
   Name = restricted-user
   Password = "UntrustedUser"
}
\end{verbatim}
\normalsize

O\`u le mot de passe dans la section Director est d\'elib\'er\'ement incorrect, et 
la console a re\c{c}u le nom {\bf restricted-client}. Si d'autre part, dans le 
fichier de configuration du Director (inaccessible diectement \`a l'utilisateur), 
nous d\'efinissons :

\footnotesize
\begin{verbatim}
Console {
  Name = restricted-user
  Password = "UntrustedUser"
  JobACL = "Restricted Client Save"
  ClientACL = restricted-client
  StorageACL = main-storage
  ScheduleACL = *all*
  PoolACL = *all*
  FileSetACL = "Restricted Client's FileSet"
  CatalogACL = DefaultCatalog
  CommandACL = run
}
\end{verbatim}
\normalsize

Alors, l'utilisateur de connectant au Director depuis cette console sera 
connect\'e en tant que {\bf restricted-client}, et il ne sera en mesure 
que de voir ou acc\'eder au job nomm\'e {\bf Restricted Client Save}, avec 
le stockage {\bf main-storage}, n'importe quel planification ou pool, un 
FileSet nomm\'e {\bf Restricted Client's File}, un catalogue nomm\'e 
{\bf DefaultCatalog}, et la seule commande qu'il pourra utiliser dans la console 
sera la commande {\bf run}. En d'autres termes, cet utilisateur est plut\^ot limit\'e 
dans ce qu'il peut voir ou faire avec Bacula.

Voici un exemple d'un fichier de configuration de bconsole qui permet 
à plusieurs Directors avec différentes Consoles selon le Director :

\footnotesize
\begin{verbatim}
Director {
   Name = MyDirector
   DIRport = 9101
   Address = myserver
   Password = "XXXXXXXXXXX"    # no, really.  this is not obfuscation.
}

Director {
   Name = SecondDirector
   DIRport = 9101
   Address = secondserver
   Password = "XXXXXXXXXXX"    # no, really.  this is not obfuscation.
}

Console {
   Name = restricted-user
   Password = "UntrustedUser"
   Director = MyDirector
}

Console {
   Name = restricted-user
   Password = "A different UntrustedUser"
   Director = SecondDirector
}
\end{verbatim}
\normalsize

Le second Director, référencé en tant que "secondserver" 
pourrait ressembler à ceci :

\footnotesize
\begin{verbatim}
Console {
  Name = restricted-user
  Password = "A different UntrustedUser"
  JobACL = "Restricted Client Save"
  ClientACL = restricted-client
  StorageACL = second-storage
  ScheduleACL = *all*
  PoolACL = *all*
  FileSetACL = "Restricted Client's FileSet"
  CatalogACL = RestrictedCatalog
  CommandACL = run, restore
  WhereACL = "/"
}
\end{verbatim}
\normalsize

\section{Commandes de la Console}
\index[general]{Commandes Console}
\index[general]{Commandes!Console}

Pour plus de d\'etails concernant la console et ses commandes, consultez le 
chapitre \ilink{La console Bacula}{_ConsoleChapter} de ce manuel.
 
\section{Un exemple de fichier de configuration de console}
\label{SampleConfiguration2}
\index[general]{Fichier!exemple Console Configuration}
\index[general]{Exemple Console Configuration Fichier}

Voici un exemple de fichier de configuration de console :

\footnotesize
\begin{verbatim}
#
# Bacula Console Configuration File
#
Director {
  Name = HeadMan
  address = "my_machine.my_domain.com"
  Password = Console_password
}
\end{verbatim}
\normalsize
