<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.unscdf.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Remeh</id>
	<title>Linux Server Wiki - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.unscdf.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Remeh"/>
	<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Sp%C3%A9cial:Contributions/Remeh"/>
	<updated>2026-05-14T15:00:34Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Installation_et_mise_en_place_d%27un_d%C3%A9p%C3%B4t_subversion&amp;diff=311</id>
		<title>Installation et mise en place d&#039;un dépôt subversion</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Installation_et_mise_en_place_d%27un_d%C3%A9p%C3%B4t_subversion&amp;diff=311"/>
		<updated>2011-02-10T15:29:02Z</updated>

		<summary type="html">&lt;p&gt;Remeh : Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:serveur]]&lt;br /&gt;
[[Category:debian]]&lt;br /&gt;
Ce howto a été écrit au départ pour debian etch puis a été adapté pour debian lenny. Il reste cependant valable la plupart du temps pour ces deux versions de debian.&lt;br /&gt;
&lt;br /&gt;
Ce howto va vous montrer comment mettre en place un dépot subversion.&lt;br /&gt;
Le domaine utilisé est &amp;lt;code&amp;gt;svn.pfoo.csnu.org&amp;lt;/code&amp;gt; qui est un alias pour &amp;lt;code&amp;gt;core.csnu.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;core.csnu.org&amp;lt;/code&amp;gt; est le domaine identifiant le serveur sur lequel se trouvera le dépôt subversion. Il possède l&#039;adresse ipv4 &amp;lt;code&amp;gt;213.186.47.110&amp;lt;/code&amp;gt; et l&#039;adresse ipv6 &amp;lt;code&amp;gt;2001:41d0:1:d6e::110&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ce howto est construit de manière à respecter mon howto sur apache2. Les changements de permissions effectués dans ce howto supposent que vous êtes en umask 0027&lt;br /&gt;
&lt;br /&gt;
=Installation et création du dépôt=&lt;br /&gt;
&lt;br /&gt;
Pour installer svn, tapez:&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install subversion subversion-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On peut maintenant créer le dépôt subversion. Dans mon cas, je vais le créer dans &amp;lt;code&amp;gt;/srv/http/csnu.org/pfoo.csnu.org/svn/&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;svnadmin create /srv/http/csnu.org/pfoo.csnu.org/svn/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le dépôt devra être accessible par apache en lecture ainsi qu&#039;en écriture :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R root:www-data /srv/http/csnu.org/pfoo.csnu.org/svn/&lt;br /&gt;
chmod -R g+w /srv/http/csnu.org/pfoo.csnu.org/svn/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gardez à l&#039;esprit que apache doit pouvoir exécuter (permission +x) tous les dossiers en amont de &amp;lt;code&amp;gt;/srv/http/csnu.org/pfoo.csnu.org/svn/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Ajout de la redirection dans la zone dns de bind=&lt;br /&gt;
&lt;br /&gt;
Éditez le fichier de la zone dns de votre domaine (&amp;lt;code&amp;gt;/srv/bind/csnu.org.hosts&amp;lt;/code&amp;gt; dans mon cas) et ajoutez les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
core.csnu.org.  IN      A       213.186.47.110&lt;br /&gt;
core.csnu.org.  IN      AAAA    2001:41d0:1:d6e::110&lt;br /&gt;
svn.pfoo        IN      CNAME   core.csnu.org.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bien-sur si vous ne disposez pas d&#039;ipv6 vous n&#039;avez pas besoin du champs &amp;lt;code&amp;gt;AAAA&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Installation et configuration du module svn de apache2=&lt;br /&gt;
&lt;br /&gt;
==Installation du module apache svn==&lt;br /&gt;
&lt;br /&gt;
Apache2 fournit un module qui permet de gérer le dépôt svn. Ce module est disponible via le paquet &amp;lt;code&amp;gt;libapache2-svn&amp;lt;/code&amp;gt;. Nous allons l&#039;installer :&lt;br /&gt;
&amp;lt;pre&amp;gt;aptitude install libapache2-svn&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement, le module est ajouté à la liste des modules activés automatiquement. Vous devriez alors voir les lignes suivantes à la fin de l&#039;installation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Enabling dav as a dependency&lt;br /&gt;
Module dav installed; run /etc/init.d/apache2 force-reload to enable.&lt;br /&gt;
Module dav_svn installed; run /etc/init.d/apache2 force-reload to enable.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si ce n&#039;est pas le cas, activez le module en tapant :&lt;br /&gt;
&amp;lt;pre&amp;gt;a2enmod dav_svn&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans certains cas, si vous utilisez https, les opérations de déplacement (move) et de copie (copy) de subversion peuvent poser problème. La solution est d&#039;utiliser le module headers de apache 2:&lt;br /&gt;
&amp;lt;pre&amp;gt;a2enmod headers&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reloadez ensuite apache2&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration d&#039;une vhost==&lt;br /&gt;
&lt;br /&gt;
Éditez le fichier &amp;lt;code&amp;gt;/etc/apache2/vhosts/svn.pfoo.csnu.org.conf&amp;lt;/code&amp;gt; et ajoutez y les lignes suivantes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost 213.186.47.110:80&amp;gt;&lt;br /&gt;
        ServerName svn.pfoo.csnu.org&lt;br /&gt;
        Include sites/svn.pfoo.csnu.org.conf&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost [2001:41d0:1:d6e::110]:80&amp;gt;&lt;br /&gt;
        ServerName svn.pfoo.csnu.org&lt;br /&gt;
        Include sites/svn.pfoo.csnu.org.conf&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous voulez une vhost sécurisée en ssl, je vous renvois à mon howto sur apache2.&lt;br /&gt;
&lt;br /&gt;
On peut maintenant créer le fichier de configuration du virtualhost.&lt;br /&gt;
Ouvrez le fichier &amp;lt;code&amp;gt;/etc/apache2/sites/svn.pfoo.csnu.org.conf&amp;lt;/code&amp;gt; avez votre éditeur de texte et ajoutez les lignes suivantes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Cette ligne est a décommenter si vous n&#039;arrivez pas à utiliser les commandes copy et move de subversion en vous connectant en https:&lt;br /&gt;
#RequestHeader edit Destination ^https http early&lt;br /&gt;
   &amp;lt;location /&amp;gt;&lt;br /&gt;
       # Chargement du module DAV svn (subversion)&lt;br /&gt;
       DAV svn&lt;br /&gt;
       # chemin complet vers le dépôt SVN&lt;br /&gt;
       SVNPath /srv/http/csnu.org/pfoo.csnu.org/svn/&lt;br /&gt;
       #On sécurise le tout par mot de passe.&lt;br /&gt;
       # htpasswd permettra de créer facilement le fichier&lt;br /&gt;
       AuthType Basic&lt;br /&gt;
       AuthName &amp;quot;pfoo&#039;s SVN&amp;quot;&lt;br /&gt;
       AuthUserFile /srv/http/csnu.org/pfoo.csnu.org/svn.htpasswd&lt;br /&gt;
       Require valid-user&lt;br /&gt;
&lt;br /&gt;
       # fichier de configuration des permissions du dépot&lt;br /&gt;
       AuthzSVNAccessFile /srv/http/csnu.org/pfoo.csnu.org/svn.perm&lt;br /&gt;
   &amp;lt;/location&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Création des utilisateurs=&lt;br /&gt;
&lt;br /&gt;
Nous allons créer un utilisateur pfoo ayant tous les droits sur le dépôt, et un utilisateur jonass n&#039;ayant que des droits limités. Comme d&#039;habitude, on préfèrera crypter les mots-de-passes en SHA (option -s)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
htpasswd -cs /srv/http/csnu.org/pfoo.csnu.org/svn.htpasswd pfoo&lt;br /&gt;
htpasswd -s /srv/http/csnu.org/pfoo.csnu.org/svn.htpasswd jonass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On donne les bonnes permissions au fichier contenant les utilisateurs:&lt;br /&gt;
&amp;lt;pre&amp;gt;chown root:www-data /srv/http/csnu.org/pfoo.csnu.org/svn.htpasswd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On peut maintenant créer le fichier contenant les accès des deux utilisateurs. Ouvrez le fichier &amp;lt;code&amp;gt;/srv/http/csnu.org/pfoo.csnu.org/svn.perm&amp;lt;/code&amp;gt; et entrez y les lignes suivantes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[groups]&lt;br /&gt;
author = pfoo&lt;br /&gt;
reader = jonass&lt;br /&gt;
[/]&lt;br /&gt;
@author = rw&lt;br /&gt;
@reader = r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Petite explication :&lt;br /&gt;
* [groups] permet de définir les groupes d&#039;utilisateurs. Chaque groupe peut contenir plusieurs utilisateurs séparés par des virgules (,).&lt;br /&gt;
* [/] permet de définir les permissions de la racine du dépôt SVN. Tel que je l&#039;ais fait ici, les membres du groupe &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; auront un accès en lecture et en écriture, alors que les membres du groupe &amp;lt;code&amp;gt;reader&amp;lt;/code&amp;gt; n&#039;auront qu&#039;un accès en lecture. Les groupes sont précédés d&#039;un @&lt;br /&gt;
&lt;br /&gt;
Comme d&#039;habitude, changer l&#039;appartenance du fichier:&lt;br /&gt;
&amp;lt;pre&amp;gt;chown root:www-data /srv/http/csnu.org/pfoo.csnu.org/svn.perm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Le moment de vérité=&lt;br /&gt;
&lt;br /&gt;
Il ne reste plus qu&#039;à reloader apache&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/init.d/apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et essayer de se connecter avec son navigateur. Normalement, vous devriez tomber sur une fenêtre vous demandant de vous loguer :)&lt;br /&gt;
&lt;br /&gt;
=Backup=&lt;br /&gt;
&lt;br /&gt;
On ne le redira jamais assez : les backups sont obligatoires pour toute les données importantes. Et particulièrement pour SVN, étant donné qu&#039;il vous permet de gérer vos projets. Quoi de plus horrible que de perdre la totalité des révisions de son projet suite à un crash disque ?&lt;br /&gt;
Alors bien-sur, le principe de SVN fait qu&#039;il est en soi un système de backup, étant donné qu&#039;en cas de crash du serveur, la révision HEAD (la plus récente) sera disponible chez tous vos collaborateurs.&lt;br /&gt;
Mais perdre les anciennes révisions n&#039;est peut-être pas acceptable pour tous.&lt;br /&gt;
&lt;br /&gt;
Pour réaliser un backup, vous pouvez utiliser soit &amp;lt;code&amp;gt;svnadmin&amp;lt;/code&amp;gt;, soit un petit script inclut avec svn qui se nomme &amp;lt;code&amp;gt;svn-backup-dumps&amp;lt;/code&amp;gt;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;svn-backup-dumps&amp;lt;/code&amp;gt; est plus facile à utiliser et permet plusieurs options, comme par exemple, gziper les backups.&lt;br /&gt;
&lt;br /&gt;
Pour réaliser votre backup avec &amp;lt;code&amp;gt;svn-backup-dumps&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;svn-backup-dumps /srv/http/csnu.org/pfoo.csnu.org/svn/ /root/backup/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour restaurer un backup, il faut utiliser &amp;lt;code&amp;gt;svnadmin&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;svnadmin load /srv/http/csnu.org/pfoo.csnu.org/svn/ &amp;lt; /root/backup/sauvegarde.svndmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Supprimer les anciennes révisions=&lt;br /&gt;
&lt;br /&gt;
Après un certain temps d&#039;utilisation vous voudrez peut-être supprimer les anciennes révisions de votre dépôt afin de faire le ménage et réduire la taille du dépôt. Pour réaliser cette action, il faut faire un dump des révisions que vous voulez garder, remettre le dépôt à zéro, puis recharger le dump&lt;br /&gt;
&lt;br /&gt;
Dans mon cas, je ne souhaite conserver que les 10 dernières révisions et je suis à la révision 453 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svnadmin dump /srv/http/csnu.org/pfoo.csnu.org/svn/ -r 443:head &amp;gt; repository-443-head.dump&lt;br /&gt;
rm -rf /srv/http/csnu.org/pfoo.csnu.org/svn/&lt;br /&gt;
svnadmin create /srv/http/csnu.org/pfoo.csnu.org/svn/&lt;br /&gt;
svnadmin load /srv/http/csnu.org/pfoo.csnu.org/svn/ &amp;lt; repository-443-head.dump&lt;br /&gt;
------ Nouvelle révision 11 propagée (commit), basée sur révision 453&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voila. Il ne vous reste plus qu&#039;à faire un &amp;lt;code&amp;gt;checkout&amp;lt;/code&amp;gt; sur le dépôt local de votre pc (car les révisions ne correspondront plus donc un simple &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; ne fonctionnera pas).&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
http://subversion.tigris.org/&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=310</id>
		<title>Auto-complétion avec Vim</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=310"/>
		<updated>2011-02-10T15:19:44Z</updated>

		<summary type="html">&lt;p&gt;Remeh : Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Développement]]&lt;br /&gt;
Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus particulièrement pour Qt4.&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel est basé sur [http://vim.wikia.com/wiki/C%2B%2B_code_completion cet article].&lt;br /&gt;
&lt;br /&gt;
Les paquets nécessaires sont : vim, ctags&lt;br /&gt;
&lt;br /&gt;
=Auto-complétion Cpp/Qt4=&lt;br /&gt;
&lt;br /&gt;
==Configuration de Vim==&lt;br /&gt;
Votre fichier de configuration doit comporter les commandes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set nocp&lt;br /&gt;
filetype plugin on&lt;br /&gt;
&amp;quot; Reconstruire les tags de son projet avec F12&lt;br /&gt;
map &amp;lt;F12&amp;gt; :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .&amp;lt;CR&amp;gt;&lt;br /&gt;
&amp;quot; OmniCppComplete&lt;br /&gt;
let OmniCpp_NamespaceSearch = 1&lt;br /&gt;
let OmniCpp_GlobalScopeSearch = 1&lt;br /&gt;
let OmniCpp_ShowAccess = 1&lt;br /&gt;
let OmniCpp_ShowPrototypeInAbbr = 1 &amp;quot; show function parameters&lt;br /&gt;
let OmniCpp_MayCompleteDot = 1 &amp;quot; autocomplete after .&lt;br /&gt;
let OmniCpp_MayCompleteArrow = 1 &amp;quot; autocomplete after -&amp;gt;&lt;br /&gt;
let OmniCpp_MayCompleteScope = 1 &amp;quot; autocomplete after ::&lt;br /&gt;
let OmniCpp_DefaultNamespaces = [&amp;quot;std&amp;quot;, &amp;quot;_GLIBCXX_STD&amp;quot;]&lt;br /&gt;
&amp;quot; gestion plus intelligente du popup&lt;br /&gt;
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif&lt;br /&gt;
set completeopt=menuone,menu,longest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Avec cette configuration, F12 crééra un fichier &amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt; dans le repertoire courant, pour les sources du repertoire courant. De cette manière, vos projets pourront être auto-complété.&lt;br /&gt;
&lt;br /&gt;
==Omnicppcomplete==&lt;br /&gt;
Il faut d&#039;abord récupérer [http://www.vim.org/scripts/script.php?script_id=1520 Omnicppcomplete].&lt;br /&gt;
Pour son installation :&lt;br /&gt;
* Le dézipper dans son dossier ~/.vim&lt;br /&gt;
&lt;br /&gt;
==Tags C++==&lt;br /&gt;
Il faut ensuite télécharger les [http://www.vim.org/scripts/script.php?script_id=2358 stdc++ tags].&lt;br /&gt;
* D&#039;abord créer un dossier ~/.vim/tags si inexistant&lt;br /&gt;
* Extraire le dossier &amp;lt;code&amp;gt;cpp_src&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;tags&amp;lt;/coed&amp;gt;&lt;br /&gt;
* Les créer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/cpp -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et enfin rajouter dans la configuration de Vim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tags Qt4==&lt;br /&gt;
Plus rien de très compliqué :&lt;br /&gt;
* Générer les ctags :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/qt -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/Qt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et rajouter dans la configuration de son Vim :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/qt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=309</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=309"/>
		<updated>2011-02-10T15:13:43Z</updated>

		<summary type="html">&lt;p&gt;Remeh : Description vim&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|style=&amp;quot;width:100%; background:#F5F5F5;&amp;quot; cellpadding=&amp;quot;10&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:200%; color:#056FFA;&amp;quot;|Bienvenu sur ce wiki&lt;br /&gt;
|-&lt;br /&gt;
|Ce wiki est dédié aux différentes distributions linux et aux logiciels libres qui les accompagnent.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%; border:1px solid #FFFFFF; background:#FFFFFF; color:#FFFFFF;&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!style=&amp;quot;font-size:115%; background:#056FFA;&amp;quot;|Rechercher par&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Special:Categories|Catégories]] &amp;amp;#149; [[:Catégorie:Distributions|Distributions]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Généralités=&lt;br /&gt;
[[Généralités sur linux]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Serveur =&lt;br /&gt;
&lt;br /&gt;
; [[:Category:serveur|Liste des pages]]&lt;br /&gt;
: &lt;br /&gt;
; [[Serveur_debian|Installation d&#039;un serveur sous debian]]&lt;br /&gt;
: Tutoriel détaillant l&#039;installation complète d&#039;un serveur sous debian : serveur ssh, dns, ftp, mysql, service de mail, serveur http avec trac et svn, statistiques cacti, protection avec fail2ban et logcheck, serveur vocal mumble.&lt;br /&gt;
; [[Installation_d&#039;un_serveur_debian_à_partir_du_mode_vkvm_chez_ovh|Installation d&#039;un serveur debian chez ovh en vkvm]]&lt;br /&gt;
: Tutoriel détaillant les étapes d&#039;installations d&#039;un serveur dédié ovh sous debian à partir du mode vkvm&lt;br /&gt;
; [[Installer un serveur de mail Zimbra Collaboration Suite - Open Source Edition]]&lt;br /&gt;
: Tutoriel détaillant l&#039;installation de ZCS OSE sous debian avec support de l&#039;ipv6&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Bureautique =&lt;br /&gt;
&lt;br /&gt;
; [[:Category:bureautique|Liste des pages]]&lt;br /&gt;
:&lt;br /&gt;
; [[Généralités_sur_archlinux|Archlinux]]&lt;br /&gt;
:&lt;br /&gt;
;[[Kubuntu / KDE : login ssh automatique par clé]]&lt;br /&gt;
:&lt;br /&gt;
;[[ssh : le client libre de OpenSSH]]&lt;br /&gt;
:&lt;br /&gt;
;[[Court-circuiter la vérification dns]]&lt;br /&gt;
:&lt;br /&gt;
;[[Graver un iso bootable sur une clé usb]]&lt;br /&gt;
:Vos CDRW ne marchent plus ? Vous n&#039;avez pas de lecteur cd sur votre netbook ? &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Développement =&lt;br /&gt;
; [[Auto-complétion_avec_Vim|Auto-complétion avec Vim]]&lt;br /&gt;
: Configurer l&#039;auto-complétion C++ dans l&#039;editeur de texte Vim&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
= Android =&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=G%C3%A9n%C3%A9ralit%C3%A9s_sur_linux&amp;diff=153</id>
		<title>Généralités sur linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=G%C3%A9n%C3%A9ralit%C3%A9s_sur_linux&amp;diff=153"/>
		<updated>2011-02-06T11:45:30Z</updated>

		<summary type="html">&lt;p&gt;Remeh : Rajout de Inclure un utilisateur dans un groupe&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ce howto a été écrit au départ pour debian etch puis a été adapté pour debian lenny. Il reste cependant valable la plupart du temps pour ces deux versions de debian. &lt;br /&gt;
&lt;br /&gt;
=Généralités sur linux=&lt;br /&gt;
&lt;br /&gt;
==Fichiers==&lt;br /&gt;
&lt;br /&gt;
Le système de fichier ext3 est principalement destiné aux systèmes basés sur GNU/Linux. Il permet des fichiers ayant un nom jusqu&#039;à 256 caractères.&lt;br /&gt;
Il ne faut pas perde de vue que, sous linux, tous les caractères ASCII sont différenciés, ce qui implique notamment la différenciation majuscule/minuscule : PoF.txt et pof.txt seront deux fichiers différents !&lt;br /&gt;
Chaque fichier à des attributs (des droits). Cette partie est traité dans la partie 3. Droits, permissions des fichiers et dossiers.&lt;br /&gt;
Le système de fichier ext4 est le successeur de ext3. Ce nouveau système de fichier gère les partitions jusqu&#039;à 1 024 pébioctets (soit &amp;lt;math&amp;gt;2^{50}&amp;lt;/math&amp;gt; octets) et a une meilleur gestion de la fragmentation que son prédécesseur.&lt;br /&gt;
&lt;br /&gt;
==L&#039;arborescence==&lt;br /&gt;
Sous linux, l&#039;arborescence part d&#039;une origine commune qu&#039;on appel &amp;quot;root&amp;quot; (racine en français) ou &amp;quot;/&amp;quot;. L&#039;organisation standard des répertoires est décrite dans le [http://www.pathname.com/fhs/ Filesystem Hierarchy Standard]. Le respect de cette hiérarchie assure compatibilité et portabilité des systèmes linux.&lt;br /&gt;
&lt;br /&gt;
==Droits, permissions des fichiers et dossiers==&lt;br /&gt;
&lt;br /&gt;
===A propos des permissions et des droits===&lt;br /&gt;
On peut différencier trois catégories de permissions :&lt;br /&gt;
* user (u) qui défini les permissions du propriétaire du fichier.&lt;br /&gt;
* group (g) qui défini les permissions du groupe auquel appartient le fichier.&lt;br /&gt;
* other (o) qui défini les permissions de tous les autres utilisateurs du serveur.&lt;br /&gt;
Chaque fichier et chaque dossier appartient à un user (son propriétaire) et à un group.&lt;br /&gt;
&lt;br /&gt;
On peut ensuite voir les trois types de permissions s&#039;appliquant pour les trois catégories :&lt;br /&gt;
- read (r) qui défini le droit de lecture du fichier et d&#039;affichage (listing) du dossier.&lt;br /&gt;
- write (w) qui défini le droit en écriture dans le fichier ou le dossier (écriture et suppression).&lt;br /&gt;
- execute (x) qui défini le droit d&#039;exécution du fichier et l&#039;autorisation d&#039;entrer dans un dossier.&lt;br /&gt;
&lt;br /&gt;
Les permissions peuvent être changés de deux manières : soit en utilisant les lettres (r, w et x), soit en utilisant les bits de permission. Le tableau suivant résume les permissions :&lt;br /&gt;
{|&lt;br /&gt;
!User (u)&lt;br /&gt;
!Group (g)&lt;br /&gt;
!Other (o)&lt;br /&gt;
|-&lt;br /&gt;
!read write exec&lt;br /&gt;
!read write exec&lt;br /&gt;
!read write exec&lt;br /&gt;
|-&lt;br /&gt;
!400 200 100&lt;br /&gt;
!40 20 10&lt;br /&gt;
!4 2 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les permissions maximales sont donc rwxrwxrwx, ou 777.&lt;br /&gt;
&lt;br /&gt;
Petit exemple :&lt;br /&gt;
Soit un utilisateur blah ayant ses fichiers dans /home/blah/. Tous ses fichiers appartiennent à l&#039;utilisateur blah et au groupe blah et sont en permission 750. Ses fichiers ne seront donc accessible que par lui même et par les membres du groupe blah.&lt;br /&gt;
Pour qu&#039;un autre utilisateur ait accès aux fichiers de blah, il faudra donc que cet autre utilisateur appartienne au groupe blah.&lt;br /&gt;
&lt;br /&gt;
Pour changer les permissions d&#039;un fichier/dossier:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod u+rwx plop : ajoute les permissions rwx à user pour le fichier/dossier plop &amp;lt;br /&amp;gt;&lt;br /&gt;
chmod g+rwx plop : ajoute les permissions rwx au group pour le fichier/dossier plop &amp;lt;br /&amp;gt;&lt;br /&gt;
chmod o+rwx plop : ajoute les permissions rwx a other pour le fichier/dossier plop &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer les permissions d&#039;un dossier et de tout ses sous-répertoires en ajoutant l&#039;option -R :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod -R o+r dir/&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, vous aurez peut-être besoin de différencier les droits des fichiers et des dossiers (par exemple : les dossier devront être +x, mais pas les fichier). &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; gère cela : les lettres r w x en minuscules indiquent des fichiers, et les lettres R W X en majuscule indiquent des dossier. Par exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod -R o-x+X dir/&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe des permissions d&#039;accès spéciales. Elles ne peuvent être attribués que par le propriétaire du fichier (ou par root). Leurs valeurs octales sont 1000, 2000 et 4000.&lt;br /&gt;
Les bits setuid et setgid sont ce qu&#039;on appel les permissions étendues : ils permettent de donner temporairement à un utilisateur les droits qui sont normalement ceux du propriétaire du fichier.&lt;br /&gt;
* setuid : il faut utiliser la commande &amp;lt;code&amp;gt;chmod u+s&amp;lt;/code&amp;gt; (ou chmod 4xxx). Un programme exécutant un tel fichier/dossier peut alors s&#039;exécuter sous le nom d&#039;un autre utilisateur. Par exemple, si un fichier appartenant à root est setuidé, tout utilisateur exécutant ce fichier peut effectuer ses tâches avec les permissions associés à root.&lt;br /&gt;
* setgid : il faut utiliser la commande &amp;lt;code&amp;gt;chmod g+s&amp;lt;/code&amp;gt; (ou chmod 2xxx). C&#039;est le même principe que setgid, mais appliqué au groupe. &lt;br /&gt;
* sticky bit : il faut utiliser la commande &amp;lt;code&amp;gt;chmod u+t&amp;lt;/code&amp;gt; (ou chmod 1xxx). Pour les dossiers : lorsque ce droit est positionné, il empêche la suppression des fichiers du dossier à tout utilisateur n&#039;étant pas le propriétaire du fichier. Cependant, un utilisateur ayant le droit d&#039;écrire dans le fichier pourra toujours le modifier (et donc, le vider complètement s&#039;il le veut !). Pour les fichiers : le positionnement de ce droit indique que le fichier devra rester en mémoire même après son exécution. Le but était d&#039;éviter de charger/décharger trop souvent les fichiers souvent utilisés et d&#039;améliorer ainsi les performances.&lt;br /&gt;
&lt;br /&gt;
===L&#039;umask===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;umask&amp;lt;/code&amp;gt; permet de définir pour chaque utilisateur avec quelles permissions seront créées les fichiers et dossiers.&lt;br /&gt;
Pour calculer l&#039;umask à appliquer, il faut soustraire les permissions voulues aux permissions totales (777).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour que les fichiers/dossiers soient créées avec les droits 755, il faudra mettre l&#039;umask à 22 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
umask 0022&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Selon moi, un umask a 0027 est l&#039;idéal. Cela permet de ne jamais créer de fichiers/dossiers accessibles par other :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
umask 0027&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut cependant redéfinir l&#039;umask à chaque fois que vous vous reloguez (connexion ssh, ouverture d&#039;un terminal). Pour éviter d&#039;avoir à redéfinir l&#039;umask à chaque fois, vous pouvez ajouter la ligne suivante dans le fichier &amp;lt;code&amp;gt;.bash_profile&amp;lt;/code&amp;gt; situé dans le home de chaque utilisateur :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
umask 0027&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour automatiser la définition de l&#039;umask lors de la création d&#039;un utilisateur, vous pouvez ajouter cette même ligne dans le fichier &amp;lt;code&amp;gt;/etc/skel/.bash_profile&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
N&#039;oubliez pas de définir l&#039;umask de votre utilisateur root dans &amp;lt;code&amp;gt;/root/.bash_profile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Les droits de /home===&lt;br /&gt;
Vous aurez peut-être remarqué que, lorsqu&#039;un utilisateur se logue, il peut lister les répertoires de /home. Même s&#039;il ne peut pas voir les fichiers des autres utilisateurs, il se peut que vous trouviez gênant qu&#039;un utilisateur connaisse les logins des autres utilisateurs. Vous pouvez régler ce problème en enlevant le droit en lecture pour other de /home comme suit :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod o-r /home&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il en ira de même si vous ne voulez pas qu&#039;un utilisateur puisse voir l&#039;arborescence située dans /&lt;br /&gt;
&lt;br /&gt;
===uid et le gid d&#039;un utilisateur et modification du groupe===&lt;br /&gt;
L&#039;uid (user ID) d&#039;un utilisateur est son identifiant numérique. Il est unique à chaque utilisateur. Il est généralement supérieur à 1000.&amp;lt;br /&amp;gt;&lt;br /&gt;
Le gid (group ID) d&#039;un groupe est son identifiant numérique. Il est unique à chaque groupe et est généralement supérieur à 1000.&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour récupérer l&#039;uid, le gid et les groupes d&#039;un utilisateur, vous pouvez utiliser la commande &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ id&lt;br /&gt;
uid=1000(pfoo) gid=1000(pfoo) groupes=1000(pfoo)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Le gid correspond au groupe principal de l&#039;utilisateur. Tous les autres groupes listés après sont dits secondaires.&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l&#039;utilisateur pfoo dans le groupe audio, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
usermod -G -a audio pfoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour changer le groupe principal de l&#039;utilisateur pfoo, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
usermod -g legroupe pfoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Inclure un utilisateur dans un groupe===&lt;br /&gt;
Appartenir à un groupe permet souvent d&#039;obtenir des droits supplémentaires. Exemple: appartenir au groupe &amp;lt;code&amp;gt;audio&amp;lt;/code&amp;gt; donne accès aux périphériques audios.&lt;br /&gt;
Pour modifier les différents utilisateurs apprtenant à un groupe, il est possible de directement modifier le fichier &amp;lt;code&amp;gt;/etc/group&amp;lt;/code&amp;gt; en énumérant les utilisateurs à droite du groupe voulu.&lt;br /&gt;
Une autre méthode consiste à utiliser la commande &amp;lt;code&amp;gt;gpasswd&amp;lt;/code&amp;gt;. Par exemple pour rajouter un &amp;lt;code&amp;gt;utilisateur&amp;lt;/code&amp;gt; à un &amp;lt;code&amp;gt;groupe&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpasswd -a utilisateur groupe &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour retirer un &amp;lt;code&amp;gt;utilisateur&amp;lt;/code&amp;gt; d&#039;un &amp;lt;code&amp;gt;groupe&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpasswd -d utilisateur groupe &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;man gpasswd&amp;lt;/code&amp;gt; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
==Les liens==&lt;br /&gt;
Sous linux chaque fichier est repéré physiquement sur le disque par un inode (c&#039;est en quelque sorte le vrai nom des données sur le disque). Le nom de fichier (filename) est ce qu&#039;on appel une étiquette et pointe sur l&#039;inode.&lt;br /&gt;
&lt;br /&gt;
===Hard link===&lt;br /&gt;
On créé un hardlink avec la commande &amp;lt;code&amp;gt;ln&amp;lt;/code&amp;gt;. Ils permettent de créer une nouvelle étiquette pointant vers un inode. Une fois un hardlink créé, on peut accéder au fichier aussi bien avec le nom d&#039;origine qu&#039;avec le nom que l&#039;on vient de créer. Si on efface le nom d&#039;origine, le fichier reste accessible par le hardlink.&lt;br /&gt;
Notez que les hardlinks doivent être situé sur le même disque physique.&lt;br /&gt;
&lt;br /&gt;
Pour créer un hardlink :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ln source nouveau_nom&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
source est le nom du fichier pour lequel vous voulez créer un hardlink, et nouveau_nom est le nom du lien&lt;br /&gt;
&lt;br /&gt;
===symbolic link===&lt;br /&gt;
&lt;br /&gt;
Un lien symbolic est une nouvelle étiquette pointant cette fois vers un nom de fichier. Si on efface le fichier d&#039;origine, le lien ne signifie plus rien.&lt;br /&gt;
&lt;br /&gt;
Pour créer un lien symbolique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ln -s source destination&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
source est le nom du fichier pour lequel vous voulez créer un hardlink, et destination est le nom du lien&lt;br /&gt;
&lt;br /&gt;
==Ajouter et supprimer des utilisateurs==&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un groupe il faut utiliser la commande groupadd :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
groupadd -g GID GROUPE&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
GID est le numéro du groupe. GROUPE est le nom du groupe.&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un utilisateur il faut utiliser la commande useradd :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
useradd -g GID -u UID LOGIN -d home_dir -m&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
GID est le numéro du groupe principal de l&#039;utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
UID est le numéro de l&#039;utilisateur. LOGIN est le login de l&#039;utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
home_dir est le répertoire de l&#039;utilisateur. Généralement /home/LOGIN.&amp;lt;br /&amp;gt;&lt;br /&gt;
L&#039;option -m précise qu&#039;il faut créer le répertoire personnel de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
==Le patch kernel grsecurity et la restriction des droits de /proc==&lt;br /&gt;
&lt;br /&gt;
Le patch grsecurity pour le noyau linux permet d&#039;augmenter la sécurité de votre machine. Cependant, la restriction des droits qu&#039;il peut imposer sur certains répertoires peut être quelque-peut gênante, notamment pour les services utilisant l&#039;ipv6. Si le kernel est bien configuré il a attribué les répertoires dont il a durcit les privilèges à un groupe (défini par la directive de configuration CONFIG_GRKERNSEC_PROC_GID). Si certains services posent des problèmes au lancement (c&#039;est le cas par exemple pour postfix ou bind9 lorsqu&#039;on les configure pour gérer l&#039;ipv6) ajoutez les simplement au groupe des sous-répertoires de /proc/.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez snmpd, il faut modifier la ligne de lancement dans &amp;lt;code&amp;gt;/etc/default/snmpd&amp;lt;/code&amp;gt; en ajoutant l&#039;option &amp;lt;code&amp;gt;-g GID&amp;lt;/code&amp;gt; où GID est le groupe défini par CONFIG_GRKERNSEC_PROC_GID.&lt;br /&gt;
&lt;br /&gt;
==Le programme tar==&lt;br /&gt;
&lt;br /&gt;
=Généralités sur debian=&lt;br /&gt;
&lt;br /&gt;
==Le lancement automatique au boot==&lt;br /&gt;
&lt;br /&gt;
Quand vous installez des serveurs sous debian, un fichier permettant de le lancer, de l&#039;arrêter, et plus rarement de reloader sa configuration est créé dans /etc/init.d/&lt;br /&gt;
Lorsque vous lancez votre serveur, certains services devront être lancé automatiquement. Ce lancement est effectué grâce à des fichiers situés dans /etc/rc?.d/ Le point d&#039;interrogation (?) représente un chiffre contenu entre 0 et 6. Ce chiffre représente l&#039;init. L&#039;init par défaut qui est exécuté au boot est défini dans le fichier /etc/inittab&lt;br /&gt;
Chez moi par exemple, j&#039;ai la ligne suivante dans mon /etc/inittab :&lt;br /&gt;
&amp;lt;pre&amp;gt;id:2:initdefault:&amp;lt;/pre&amp;gt;&lt;br /&gt;
Celà signifie que lorsque je démarre mon serveur, il passe directement en &amp;lt;code&amp;gt;init 2&amp;lt;/code&amp;gt;. C&#039;est donc les fichiers situés dans /etc/rc2.d/ qui seront utilisés pour lancer les services.&lt;br /&gt;
&lt;br /&gt;
Il est bon de noter que les fichiers situés dans &amp;lt;code&amp;gt;/etc/rc2.d/&amp;lt;/code&amp;gt; sont en fait des liens virtuels pointant vers le lanceur situé dans &amp;lt;code&amp;gt;/etc/init.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
Si on supprime l&#039;un de ces lignes virtuels, le service en question ne sera plus lancé automatiquement.&lt;br /&gt;
Si on ajoute un lien, le service correspondant sera alors automatiquement lancé au boot.&lt;br /&gt;
&lt;br /&gt;
Vous avez peut-être remarqué que les liens ne sont pas nommé uniquement par le nom du service qu&#039;ils lancent, mais qu&#039;ils sont préfixés d&#039;une lettre et de deux chiffres.&lt;br /&gt;
Un lien commençant par un S sera lancé, alors qu&#039;un lien commençant par un K sera stoppé (K comme Kill)&lt;br /&gt;
Le nombre suivant la lettre S ou K définit la priorité de lancement ou d&#039;arrêt.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer l&#039;init actuel avec la commande telinit suivit du numéro de l&#039;init voulu.&lt;br /&gt;
L&#039;init 0 correspont a l&#039;arrêt du serveur. L&#039;init 6 correspond au reboot. L&#039;init 1 est généralement utilisé pour un système single-user, et les init 2 à 5 pour un système multi-user.&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, voici comment créer un lien virtuel pour ajouter un service au lancement automatique :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ln -s /etc/init.d/exemple /etc/rc2.d/S20exemple&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez tout de même que beaucoup de serveurs (apache, proftpd, ...) proposent dans leur fichier &amp;lt;code&amp;gt;/etc/default/&amp;lt;/code&amp;gt; de définir s&#039;ils doivent se lancer ou non au boot. Cela permet de ne pas toucher aux fichiers de /etc/rc?.d/&lt;br /&gt;
&lt;br /&gt;
=Généralités sur ce howto=&lt;br /&gt;
&lt;br /&gt;
Je vais commencer par décrire l&#039;arborescence que la suite du howto utilise.&lt;br /&gt;
Le dossier &amp;lt;code&amp;gt;/srv/&amp;lt;/code&amp;gt; va contenir tous les dossiers et fichiers en rapport directement avec le serveur. Sur mon installation, j&#039;ai créé une partition à part pour &amp;lt;code&amp;gt;/srv/&amp;lt;/code&amp;gt; ce qui permet de ne pas perdre les données lors d&#039;une réinstallation.&lt;br /&gt;
&amp;lt;code&amp;gt;/srv/bind/&amp;lt;/code&amp;gt; contient les différentes zones dns que mon serveur bind9 gère.&lt;br /&gt;
&amp;lt;code&amp;gt;/srv/http/&amp;lt;/code&amp;gt; contient les différents sites internet que mon serveur héberge du moment qu&#039;ils ne sont pas rattaché à un utilisateur en particulier. Les sites internet rattachés à un utilisateur doivent être dans le dossier home de l&#039;utilisateur en question.&lt;br /&gt;
&lt;br /&gt;
Notez que pour la suite de ce howto, tous les changements de permissions effectués supposent que vous êtes en umask 0027.&lt;br /&gt;
Vous pouvez voir votre umask actuel avec la commande umask. Si votre umask n&#039;est pas 0027, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;umask 0027&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le répertoire /srv s&#039;il n&#039;existe pas :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /srv&lt;br /&gt;
chmod o+rx /srv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Généralités sur l&#039;installation d&#039;un serveur dédié sous debian=&lt;br /&gt;
&lt;br /&gt;
==Configurer les locales==&lt;br /&gt;
&lt;br /&gt;
Les paramètres régionaux (locales en anglais) sont un ensemble de définitions de textes et de formats des fichiers.&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&lt;br /&gt;
Pour modifier la locale sous Debian, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Au premier menu, cochez les locales suivantes avec la touche espace :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fr_FR ISO-8859-1&lt;br /&gt;
fr_FR.UTF-8 UTF-8&lt;br /&gt;
fr_FR.UTF-8@euro UTF-8&lt;br /&gt;
fr_FR@euro ISO-8859-15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Au menu suivant, définissez &amp;lt;code&amp;gt;fr_FR.UTF-8&amp;lt;/code&amp;gt; comme locale active par défaut.&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, les locales actives sont listées dans &amp;lt;code&amp;gt;/etc/locale.gen&amp;lt;/code&amp;gt;. Vous pouvez modifier manuellement les locales actives en les ajoutant dans ce fichier puis en utilisant la commande &amp;lt;code&amp;gt;locale-gen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez des fichiers écrits avec une locale différente, vous pouvez rectifier vos fichiers avec &amp;lt;code&amp;gt;iconv&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===ArchLinux===&lt;br /&gt;
&lt;br /&gt;
Pour modifier la locale sous ArchLinux, il y a 3 étapes distinctes :&lt;br /&gt;
* Indiquer quelles locales peuvent être utilisées en modifiant le fichier &amp;lt;code&amp;gt;/etc/locale.gen&amp;lt;/code&amp;gt; : il faut les décommenter en retirant le #&lt;br /&gt;
* Re-générer les locales en tapant en root la commande &amp;lt;code&amp;gt;locale-gen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Préciser laquelle utiliser dans le fichier &amp;lt;code&amp;gt;/etc/rc.conf&amp;lt;/code&amp;gt; à la variable &amp;lt;code&amp;gt;LOCALE&amp;lt;/code&amp;gt; quasiment tout en haut du fichier. Exemple : &amp;lt;code&amp;gt;LOCALE=&amp;quot;fr_FR.utf8&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurer l&#039;hostname du serveur==&lt;br /&gt;
&lt;br /&gt;
Généralement, l&#039;hostname de votre serveur correspond au nom de la machine chez la société chez qui vous louez le serveur. C&#039;est ce même nom qui est affiché dans la ligne de votre shell lorsque vous vous loguez en ssh. Si vous possédez votre domaine, vous voudrez probablement avoir votre propre hostname. Dans mon cas, mon serveur s&#039;appelle core.csnu.org.&lt;br /&gt;
&lt;br /&gt;
Le premier fichier à modifier est &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;. Ce fichier défini notamment le nom affiché dans le shell. Tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo core.csnu.org &amp;gt; /etc/hostname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut aussi modifier le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; et modifier la correspondance entre l&#039;ip de la machine et l&#039;hostname. Dans mon cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
213.186.47.110  core.csnu.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurer une adresse ipv6==&lt;br /&gt;
&lt;br /&gt;
Si la société chez qui vous louez votre serveur vous a alloué un bloc ipv6 vous voudrez peut-être configurer des adresses ipv6 sur votre serveur. Dans mon cas, le bloc ipv6 est 2001:41D0:1:127d::/64.&lt;br /&gt;
Pour ajouter l&#039;adresse ipv6 2001:41d0:1:127d::1 à l&#039;interface eth0 de votre serveur, tapez:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig eth0 inet6 add 2001:41d0:1:127d::1/64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour supprimer cette adresse ipv6 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig eth0 inet6 del  2001:41d0:1:127d::1/64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour que l&#039;adresse ipv6 soit configurée automatiquement au boot il faut ajouter les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
iface eth0 inet6 static&lt;br /&gt;
       address 2001:41d0:1:127d::1&lt;br /&gt;
       netmask 64&lt;br /&gt;
       #mtu 1280&lt;br /&gt;
       up echo 0 &amp;gt; /proc/sys/net/ipv6/conf/all/autoconf&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, il faut modifier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
::1 localhost.localdomain localhost&lt;br /&gt;
2001:41d0:1:127d::1 core.csnu.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Automatiser la création du motd==&lt;br /&gt;
&lt;br /&gt;
Le fichier &amp;lt;code&amp;gt;/etc/motd&amp;lt;/code&amp;gt; contient le message qui doit être affiché lorsque quelqu&#039;un se log en ssh. Vous pouvez y entrer par exemple un message que vous voulez passer aux utilisateurs du serveur.&lt;br /&gt;
&lt;br /&gt;
Si vous voulez bénéficier d&#039;un motd graphique, installez le paquet &amp;lt;code&amp;gt;linuxlogo&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install linuxlogo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez créer un logo en dirigeant la sorti de la commande &amp;lt;code&amp;gt;linux_logo&amp;lt;/code&amp;gt; vers &amp;lt;code&amp;gt;/etc/motd&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux_logo &amp;gt; /etc/motd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Si vous voulez automatiser la création d&#039;un motd dynamique qui se modifiera par exemple à chaque changement de kernel il faut créer un script sh qui sera lancé à chaque démarrage. Personnellement, je me sers du fichier &amp;lt;code&amp;gt;/etc/rc.local&amp;lt;/code&amp;gt;.&lt;br /&gt;
Voici mon fichier &amp;lt;code&amp;gt;/etc/rc.local&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
linux_logo &amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;Debian GNU/Linux 4.0&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
uname -a &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;server    : `hostname | cut -f 1 -d &amp;quot;.&amp;quot;`&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;ip        : `cat /etc/network/interfaces | grep &amp;quot;address&amp;quot; | head -n 1 | cut -f 2 -d &amp;quot; &amp;quot;`&amp;quot;  &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;ip6	: `tac /etc/network/interfaces | grep &amp;quot;address&amp;quot; |  head -n 1 | cut -f 2 -d &amp;quot; &amp;quot;`&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;hostname  : `hostname`&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
/bin/cp /etc/motd /etc/issue&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Des mails temporaires avec exim4==&lt;br /&gt;
&lt;br /&gt;
Vous aurez peut-être temporairement besoin d&#039;un serveur smtp local pour gérer vos envois de mails (crontab, ...). Pour celà, nous allons rapidement configurer &amp;lt;code&amp;gt;Exim4&amp;lt;/code&amp;gt;.&lt;br /&gt;
Pour commencez, installez &amp;lt;code&amp;gt;mailx&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mailx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;mailx&amp;lt;/code&amp;gt; permet d&#039;envoyer et de recevoir des mails (c&#039;est un MUA, ou Mail User Agent). Les dépendances de mailx sous debian vont installer un serveur smtp. Sous debian, c&#039;est exim4 qui va est installé par défaut.&lt;br /&gt;
&lt;br /&gt;
Vous serrez amené à répondre à plusieurs questions pour la configuration d&#039;exim4. Rien de bien compliqué.&lt;br /&gt;
Pour une raison obscure, lors de l&#039;installation, je ne pouvais pas modifier le nom du serveur (mailname). Si vous êtes dans le même cas de figure, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/mailname&amp;lt;/code&amp;gt; et d&#039;y entrer votre domaine. Une fois cela fait, il ne reste plus qu&#039;à relancer la configuration d&#039;exim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg-reconfigure exim4-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=84</id>
		<title>Auto-complétion avec Vim</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=84"/>
		<updated>2011-02-03T17:56:09Z</updated>

		<summary type="html">&lt;p&gt;Remeh : /* Configuration de Vim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus particulièrement pour Qt4.&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel est basé sur [http://vim.wikia.com/wiki/C%2B%2B_code_completion cet article].&lt;br /&gt;
&lt;br /&gt;
Les paquets nécessaires sont : vim, ctags&lt;br /&gt;
&lt;br /&gt;
=Configuration de Vim=&lt;br /&gt;
Votre fichier de configuration doit comporter les commandes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set nocp&lt;br /&gt;
filetype plugin on&lt;br /&gt;
&amp;quot; Reconstruire les tags de son projet avec F12&lt;br /&gt;
map &amp;lt;F12&amp;gt; :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .&amp;lt;CR&amp;gt;&lt;br /&gt;
&amp;quot; OmniCppComplete&lt;br /&gt;
let OmniCpp_NamespaceSearch = 1&lt;br /&gt;
let OmniCpp_GlobalScopeSearch = 1&lt;br /&gt;
let OmniCpp_ShowAccess = 1&lt;br /&gt;
let OmniCpp_ShowPrototypeInAbbr = 1 &amp;quot; show function parameters&lt;br /&gt;
let OmniCpp_MayCompleteDot = 1 &amp;quot; autocomplete after .&lt;br /&gt;
let OmniCpp_MayCompleteArrow = 1 &amp;quot; autocomplete after -&amp;gt;&lt;br /&gt;
let OmniCpp_MayCompleteScope = 1 &amp;quot; autocomplete after ::&lt;br /&gt;
let OmniCpp_DefaultNamespaces = [&amp;quot;std&amp;quot;, &amp;quot;_GLIBCXX_STD&amp;quot;]&lt;br /&gt;
&amp;quot; gestion plus intelligente du popup&lt;br /&gt;
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif&lt;br /&gt;
set completeopt=menuone,menu,longest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Avec cette configuration, F12 crééra un fichier &amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt; dans le repertoire courant, pour les sources du repertoire courant. De cette manière, vos projets pourront être auto-complété.&lt;br /&gt;
&lt;br /&gt;
=Omnicppcomplete=&lt;br /&gt;
Il faut d&#039;abord récupérer [http://www.vim.org/scripts/script.php?script_id=1520 Omnicppcomplete].&lt;br /&gt;
Pour son installation :&lt;br /&gt;
* Le dézipper dans son dossier ~/.vim&lt;br /&gt;
&lt;br /&gt;
=Tags C++=&lt;br /&gt;
Il faut ensuite télécharger les [http://www.vim.org/scripts/script.php?script_id=2358 stdc++ tags].&lt;br /&gt;
* D&#039;abord créer un dossier ~/.vim/tags si inexistant&lt;br /&gt;
* Extraire le dossier &amp;lt;code&amp;gt;cpp_src&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;tags&amp;lt;/coed&amp;gt;&lt;br /&gt;
* Les créer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/cpp -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et enfin rajouter dans la configuration de Vim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tags Qt4=&lt;br /&gt;
Plus rien de très compliqué :&lt;br /&gt;
* Générer les ctags :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/qt -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/Qt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et rajouter dans la configuration de son Vim :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/qt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=83</id>
		<title>Auto-complétion avec Vim</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=83"/>
		<updated>2011-02-03T17:52:36Z</updated>

		<summary type="html">&lt;p&gt;Remeh : /* Configuration de Vim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus particulièrement pour Qt4.&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel est basé sur [http://vim.wikia.com/wiki/C%2B%2B_code_completion cet article].&lt;br /&gt;
&lt;br /&gt;
Les paquets nécessaires sont : vim, ctags&lt;br /&gt;
&lt;br /&gt;
=Configuration de Vim=&lt;br /&gt;
Votre fichier de configuration doit comporter les commandes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set nocp&lt;br /&gt;
filetype plugin on&lt;br /&gt;
&amp;quot; Reconstruire les tags de son projet avec Shift-F12&lt;br /&gt;
map &amp;lt;S-F12&amp;gt; :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .&amp;lt;CR&amp;gt;&lt;br /&gt;
&amp;quot; OmniCppComplete&lt;br /&gt;
let OmniCpp_NamespaceSearch = 1&lt;br /&gt;
let OmniCpp_GlobalScopeSearch = 1&lt;br /&gt;
let OmniCpp_ShowAccess = 1&lt;br /&gt;
let OmniCpp_ShowPrototypeInAbbr = 1 &amp;quot; show function parameters&lt;br /&gt;
let OmniCpp_MayCompleteDot = 1 &amp;quot; autocomplete after .&lt;br /&gt;
let OmniCpp_MayCompleteArrow = 1 &amp;quot; autocomplete after -&amp;gt;&lt;br /&gt;
let OmniCpp_MayCompleteScope = 1 &amp;quot; autocomplete after ::&lt;br /&gt;
let OmniCpp_DefaultNamespaces = [&amp;quot;std&amp;quot;, &amp;quot;_GLIBCXX_STD&amp;quot;]&lt;br /&gt;
&amp;quot; gestion plus intelligente du popup&lt;br /&gt;
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif&lt;br /&gt;
set completeopt=menuone,menu,longest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Avec cette configuration, F12 crééra un fichier &amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt; dans le repertoire courant, pour les sources du repertoire courant. De cette manière, vos projets pourront être auto-complété.&lt;br /&gt;
&lt;br /&gt;
=Omnicppcomplete=&lt;br /&gt;
Il faut d&#039;abord récupérer [http://www.vim.org/scripts/script.php?script_id=1520 Omnicppcomplete].&lt;br /&gt;
Pour son installation :&lt;br /&gt;
* Le dézipper dans son dossier ~/.vim&lt;br /&gt;
&lt;br /&gt;
=Tags C++=&lt;br /&gt;
Il faut ensuite télécharger les [http://www.vim.org/scripts/script.php?script_id=2358 stdc++ tags].&lt;br /&gt;
* D&#039;abord créer un dossier ~/.vim/tags si inexistant&lt;br /&gt;
* Extraire le dossier &amp;lt;code&amp;gt;cpp_src&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;tags&amp;lt;/coed&amp;gt;&lt;br /&gt;
* Les créer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/cpp -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et enfin rajouter dans la configuration de Vim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tags Qt4=&lt;br /&gt;
Plus rien de très compliqué :&lt;br /&gt;
* Générer les ctags :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/qt -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/Qt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et rajouter dans la configuration de son Vim :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/qt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=59</id>
		<title>Auto-complétion avec Vim</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=59"/>
		<updated>2011-02-03T13:33:49Z</updated>

		<summary type="html">&lt;p&gt;Remeh : /* Configuration de Vim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus particulièrement pour Qt4.&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel est basé sur [http://vim.wikia.com/wiki/C%2B%2B_code_completion cet article].&lt;br /&gt;
&lt;br /&gt;
Les paquets nécessaires sont : vim, ctags&lt;br /&gt;
&lt;br /&gt;
=Configuration de Vim=&lt;br /&gt;
Votre fichier de configuration doit comporter les commandes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set nocp&lt;br /&gt;
filetype plugin on&lt;br /&gt;
&amp;quot; Reconstruire les tags de son projet avec F12&lt;br /&gt;
map &amp;lt;F12&amp;gt; :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .&amp;lt;CR&amp;gt;&lt;br /&gt;
&amp;quot; OmniCppComplete&lt;br /&gt;
let OmniCpp_NamespaceSearch = 1&lt;br /&gt;
let OmniCpp_GlobalScopeSearch = 1&lt;br /&gt;
let OmniCpp_ShowAccess = 1&lt;br /&gt;
let OmniCpp_ShowPrototypeInAbbr = 1 &amp;quot; show function parameters&lt;br /&gt;
let OmniCpp_MayCompleteDot = 1 &amp;quot; autocomplete after .&lt;br /&gt;
let OmniCpp_MayCompleteArrow = 1 &amp;quot; autocomplete after -&amp;gt;&lt;br /&gt;
let OmniCpp_MayCompleteScope = 1 &amp;quot; autocomplete after ::&lt;br /&gt;
let OmniCpp_DefaultNamespaces = [&amp;quot;std&amp;quot;, &amp;quot;_GLIBCXX_STD&amp;quot;]&lt;br /&gt;
&amp;quot; gestion plus intelligente du popup&lt;br /&gt;
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif&lt;br /&gt;
set completeopt=menuone,menu,longest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Avec cette configuration, F12 crééra un fichier &amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt; dans le repertoire courant, pour les sources du repertoire courant. De cette manière, vos projets pourront être auto-complété.&lt;br /&gt;
&lt;br /&gt;
=Omnicppcomplete=&lt;br /&gt;
Il faut d&#039;abord récupérer [http://www.vim.org/scripts/script.php?script_id=1520 Omnicppcomplete].&lt;br /&gt;
Pour son installation :&lt;br /&gt;
* Le dézipper dans son dossier ~/.vim&lt;br /&gt;
&lt;br /&gt;
=Tags C++=&lt;br /&gt;
Il faut ensuite télécharger les [http://www.vim.org/scripts/script.php?script_id=2358 stdc++ tags].&lt;br /&gt;
* D&#039;abord créer un dossier ~/.vim/tags si inexistant&lt;br /&gt;
* Extraire le dossier &amp;lt;code&amp;gt;cpp_src&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;tags&amp;lt;/coed&amp;gt;&lt;br /&gt;
* Les créer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/cpp -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et enfin rajouter dans la configuration de Vim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tags Qt4=&lt;br /&gt;
Plus rien de très compliqué :&lt;br /&gt;
* Générer les ctags :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/qt -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/Qt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et rajouter dans la configuration de son Vim :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/qt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=58</id>
		<title>Auto-complétion avec Vim</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=58"/>
		<updated>2011-02-03T13:32:51Z</updated>

		<summary type="html">&lt;p&gt;Remeh : /* Configuration de Vim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus particulièrement pour Qt4.&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel est basé sur [http://vim.wikia.com/wiki/C%2B%2B_code_completion cet article].&lt;br /&gt;
&lt;br /&gt;
Les paquets nécessaires sont : vim, ctags&lt;br /&gt;
&lt;br /&gt;
=Configuration de Vim=&lt;br /&gt;
Votre fichier de configuration doit comporter les commandes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set nocp&lt;br /&gt;
filetype plugin on&lt;br /&gt;
&amp;quot; Reconstruire les tags de son projet avec Ctrl-F12&lt;br /&gt;
map &amp;lt;F12&amp;gt; :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .&amp;lt;CR&amp;gt;&lt;br /&gt;
&amp;quot; OmniCppComplete&lt;br /&gt;
let OmniCpp_NamespaceSearch = 1&lt;br /&gt;
let OmniCpp_GlobalScopeSearch = 1&lt;br /&gt;
let OmniCpp_ShowAccess = 1&lt;br /&gt;
let OmniCpp_ShowPrototypeInAbbr = 1 &amp;quot; show function parameters&lt;br /&gt;
let OmniCpp_MayCompleteDot = 1 &amp;quot; autocomplete after .&lt;br /&gt;
let OmniCpp_MayCompleteArrow = 1 &amp;quot; autocomplete after -&amp;gt;&lt;br /&gt;
let OmniCpp_MayCompleteScope = 1 &amp;quot; autocomplete after ::&lt;br /&gt;
let OmniCpp_DefaultNamespaces = [&amp;quot;std&amp;quot;, &amp;quot;_GLIBCXX_STD&amp;quot;]&lt;br /&gt;
&amp;quot; gestion plus intelligente du popup&lt;br /&gt;
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif&lt;br /&gt;
set completeopt=menuone,menu,longest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Avec cette configuration, F12 crééra un fichier &amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt; dans le repertoire courant, pour les sources du repertoire courant. De cette manière, vos projets pourront être auto-complété.&lt;br /&gt;
&lt;br /&gt;
=Omnicppcomplete=&lt;br /&gt;
Il faut d&#039;abord récupérer [http://www.vim.org/scripts/script.php?script_id=1520 Omnicppcomplete].&lt;br /&gt;
Pour son installation :&lt;br /&gt;
* Le dézipper dans son dossier ~/.vim&lt;br /&gt;
&lt;br /&gt;
=Tags C++=&lt;br /&gt;
Il faut ensuite télécharger les [http://www.vim.org/scripts/script.php?script_id=2358 stdc++ tags].&lt;br /&gt;
* D&#039;abord créer un dossier ~/.vim/tags si inexistant&lt;br /&gt;
* Extraire le dossier &amp;lt;code&amp;gt;cpp_src&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;tags&amp;lt;/coed&amp;gt;&lt;br /&gt;
* Les créer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/cpp -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et enfin rajouter dans la configuration de Vim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tags Qt4=&lt;br /&gt;
Plus rien de très compliqué :&lt;br /&gt;
* Générer les ctags :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/qt -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/Qt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et rajouter dans la configuration de son Vim :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/qt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=57</id>
		<title>Auto-complétion avec Vim</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=57"/>
		<updated>2011-02-03T13:32:22Z</updated>

		<summary type="html">&lt;p&gt;Remeh : /* Configuration de Vim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus particulièrement pour Qt4.&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel est basé sur [http://vim.wikia.com/wiki/C%2B%2B_code_completion cet article].&lt;br /&gt;
&lt;br /&gt;
Les paquets nécessaires sont : vim, ctags&lt;br /&gt;
&lt;br /&gt;
=Configuration de Vim=&lt;br /&gt;
Votre fichier de configuration doit comporter les commandes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set nocp&lt;br /&gt;
filetype plugin on&lt;br /&gt;
&amp;quot; Reconstruire les tags de son projet avec Ctrl-F12&lt;br /&gt;
map &amp;lt;F12&amp;gt; :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .&amp;lt;CR&amp;gt;&lt;br /&gt;
&amp;quot; OmniCppComplete&lt;br /&gt;
let OmniCpp_NamespaceSearch = 1&lt;br /&gt;
let OmniCpp_GlobalScopeSearch = 1&lt;br /&gt;
let OmniCpp_ShowAccess = 1&lt;br /&gt;
let OmniCpp_ShowPrototypeInAbbr = 1 &amp;quot; show function parameters&lt;br /&gt;
let OmniCpp_MayCompleteDot = 1 &amp;quot; autocomplete after .&lt;br /&gt;
let OmniCpp_MayCompleteArrow = 1 &amp;quot; autocomplete after -&amp;gt;&lt;br /&gt;
let OmniCpp_MayCompleteScope = 1 &amp;quot; autocomplete after ::&lt;br /&gt;
let OmniCpp_DefaultNamespaces = [&amp;quot;std&amp;quot;, &amp;quot;_GLIBCXX_STD&amp;quot;]&lt;br /&gt;
&amp;quot; gestion plus intelligente du popup&lt;br /&gt;
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif&lt;br /&gt;
set completeopt=menuone,menu,longest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Avec cette configuration, F12 créera un fichier &amp;lt;code&amp;gt;tags&amp;lt;/code&amp;gt; dans le repertoire courant, pour les sources du repertoire courant. De cette manière, vos projets pourront être auto-complété.&lt;br /&gt;
&lt;br /&gt;
=Omnicppcomplete=&lt;br /&gt;
Il faut d&#039;abord récupérer [http://www.vim.org/scripts/script.php?script_id=1520 Omnicppcomplete].&lt;br /&gt;
Pour son installation :&lt;br /&gt;
* Le dézipper dans son dossier ~/.vim&lt;br /&gt;
&lt;br /&gt;
=Tags C++=&lt;br /&gt;
Il faut ensuite télécharger les [http://www.vim.org/scripts/script.php?script_id=2358 stdc++ tags].&lt;br /&gt;
* D&#039;abord créer un dossier ~/.vim/tags si inexistant&lt;br /&gt;
* Extraire le dossier &amp;lt;code&amp;gt;cpp_src&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;tags&amp;lt;/coed&amp;gt;&lt;br /&gt;
* Les créer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/cpp -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et enfin rajouter dans la configuration de Vim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tags Qt4=&lt;br /&gt;
Plus rien de très compliqué :&lt;br /&gt;
* Générer les ctags :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/qt -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/Qt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et rajouter dans la configuration de son Vim :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/qt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=56</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=56"/>
		<updated>2011-02-03T13:30:22Z</updated>

		<summary type="html">&lt;p&gt;Remeh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Généralités]]&lt;br /&gt;
&lt;br /&gt;
=Administration=&lt;br /&gt;
[[Installation d&#039;un serveur dédié à partir du mode vkvm chez ovh]]&lt;br /&gt;
&lt;br /&gt;
[[Installation et configuration d&#039;un nouveau kernel]]&lt;br /&gt;
&lt;br /&gt;
[[Configuration d&#039;apt-get]]&lt;br /&gt;
&lt;br /&gt;
[[Installation et configuration de OpenSSH]]&lt;br /&gt;
&lt;br /&gt;
[[Sécurisation de base d&#039;un serveur linux]]&lt;br /&gt;
&lt;br /&gt;
[[Installation et configuration de OpenSSL]]&lt;br /&gt;
&lt;br /&gt;
[[Installation et configuration de bind9]]&lt;br /&gt;
&lt;br /&gt;
[[Installation et configuration d&#039;un serveur http apache 2.2]]&lt;br /&gt;
&lt;br /&gt;
=Développement=&lt;br /&gt;
[[Auto-complétion Cpp /Qt4 avec Vim]]&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=54</id>
		<title>Auto-complétion avec Vim</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Auto-compl%C3%A9tion_avec_Vim&amp;diff=54"/>
		<updated>2011-02-03T13:29:52Z</updated>

		<summary type="html">&lt;p&gt;Remeh : Page créée avec « Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus p... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus particulièrement pour Qt4.&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel est basé sur [http://vim.wikia.com/wiki/C%2B%2B_code_completion cet article].&lt;br /&gt;
&lt;br /&gt;
Les paquets nécessaires sont : vim, ctags&lt;br /&gt;
&lt;br /&gt;
=Configuration de Vim=&lt;br /&gt;
Votre fichier de configuration doit comporter les commandes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set nocp&lt;br /&gt;
filetype plugin on&lt;br /&gt;
&amp;quot; Reconstruire les tags de son projet avec Ctrl-F12&lt;br /&gt;
map &amp;lt;C-F12&amp;gt; :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .&amp;lt;CR&amp;gt;&lt;br /&gt;
&amp;quot; OmniCppComplete&lt;br /&gt;
let OmniCpp_NamespaceSearch = 1&lt;br /&gt;
let OmniCpp_GlobalScopeSearch = 1&lt;br /&gt;
let OmniCpp_ShowAccess = 1&lt;br /&gt;
let OmniCpp_ShowPrototypeInAbbr = 1 &amp;quot; show function parameters&lt;br /&gt;
let OmniCpp_MayCompleteDot = 1 &amp;quot; autocomplete after .&lt;br /&gt;
let OmniCpp_MayCompleteArrow = 1 &amp;quot; autocomplete after -&amp;gt;&lt;br /&gt;
let OmniCpp_MayCompleteScope = 1 &amp;quot; autocomplete after ::&lt;br /&gt;
let OmniCpp_DefaultNamespaces = [&amp;quot;std&amp;quot;, &amp;quot;_GLIBCXX_STD&amp;quot;]&lt;br /&gt;
&amp;quot; gestion plus intelligente du popup&lt;br /&gt;
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif&lt;br /&gt;
set completeopt=menuone,menu,longest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Omnicppcomplete=&lt;br /&gt;
Il faut d&#039;abord récupérer [http://www.vim.org/scripts/script.php?script_id=1520 Omnicppcomplete].&lt;br /&gt;
Pour son installation :&lt;br /&gt;
* Le dézipper dans son dossier ~/.vim&lt;br /&gt;
&lt;br /&gt;
=Tags C++=&lt;br /&gt;
Il faut ensuite télécharger les [http://www.vim.org/scripts/script.php?script_id=2358 stdc++ tags].&lt;br /&gt;
* D&#039;abord créer un dossier ~/.vim/tags si inexistant&lt;br /&gt;
* Extraire le dossier &amp;lt;code&amp;gt;cpp_src&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;tags&amp;lt;/coed&amp;gt;&lt;br /&gt;
* Les créer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/cpp -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et enfin rajouter dans la configuration de Vim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tags Qt4=&lt;br /&gt;
Plus rien de très compliqué :&lt;br /&gt;
* Générer les ctags :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/qt -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/Qt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et rajouter dans la configuration de son Vim :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/qt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=53</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Accueil&amp;diff=53"/>
		<updated>2011-02-03T13:29:34Z</updated>

		<summary type="html">&lt;p&gt;Remeh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Généralités]]&lt;br /&gt;
&lt;br /&gt;
=Administration=&lt;br /&gt;
[[Installation d&#039;un serveur dédié à partir du mode vkvm chez ovh]]&lt;br /&gt;
&lt;br /&gt;
[[Installation et configuration d&#039;un nouveau kernel]]&lt;br /&gt;
&lt;br /&gt;
[[Configuration d&#039;apt-get]]&lt;br /&gt;
&lt;br /&gt;
[[Installation et configuration de OpenSSH]]&lt;br /&gt;
&lt;br /&gt;
[[Sécurisation de base d&#039;un serveur linux]]&lt;br /&gt;
&lt;br /&gt;
[[Installation et configuration de OpenSSL]]&lt;br /&gt;
&lt;br /&gt;
[[Installation et configuration de bind9]]&lt;br /&gt;
&lt;br /&gt;
[[Installation et configuration d&#039;un serveur http apache 2.2]]&lt;br /&gt;
&lt;br /&gt;
=Développement=&lt;br /&gt;
[[Auto-complétion C /Qt4 avec Vim]]&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Discussion:Auto-compl%C3%A9tion_C_/Qt4_avec_Vim&amp;diff=50</id>
		<title>Discussion:Auto-complétion C /Qt4 avec Vim</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Discussion:Auto-compl%C3%A9tion_C_/Qt4_avec_Vim&amp;diff=50"/>
		<updated>2011-02-03T13:26:43Z</updated>

		<summary type="html">&lt;p&gt;Remeh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus particulièrement pour Qt4.&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel est basé sur [http://vim.wikia.com/wiki/C%2B%2B_code_completion cet article].&lt;br /&gt;
&lt;br /&gt;
Les paquets nécessaires sont : vim, ctags&lt;br /&gt;
&lt;br /&gt;
=Configuration de Vim=&lt;br /&gt;
Votre fichier de configuration doit comporter les commandes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set nocp&lt;br /&gt;
filetype plugin on&lt;br /&gt;
&amp;quot; Reconstruire les tags de son projet avec Ctrl-F12&lt;br /&gt;
map &amp;lt;C-F12&amp;gt; :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .&amp;lt;CR&amp;gt;&lt;br /&gt;
&amp;quot; OmniCppComplete&lt;br /&gt;
let OmniCpp_NamespaceSearch = 1&lt;br /&gt;
let OmniCpp_GlobalScopeSearch = 1&lt;br /&gt;
let OmniCpp_ShowAccess = 1&lt;br /&gt;
let OmniCpp_ShowPrototypeInAbbr = 1 &amp;quot; show function parameters&lt;br /&gt;
let OmniCpp_MayCompleteDot = 1 &amp;quot; autocomplete after .&lt;br /&gt;
let OmniCpp_MayCompleteArrow = 1 &amp;quot; autocomplete after -&amp;gt;&lt;br /&gt;
let OmniCpp_MayCompleteScope = 1 &amp;quot; autocomplete after ::&lt;br /&gt;
let OmniCpp_DefaultNamespaces = [&amp;quot;std&amp;quot;, &amp;quot;_GLIBCXX_STD&amp;quot;]&lt;br /&gt;
&amp;quot; gestion plus intelligente du popup&lt;br /&gt;
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif&lt;br /&gt;
set completeopt=menuone,menu,longest,preview&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Omnicppcomplete=&lt;br /&gt;
Il faut d&#039;abord récupérer [http://www.vim.org/scripts/script.php?script_id=1520 Omnicppcomplete].&lt;br /&gt;
Pour son installation :&lt;br /&gt;
* Le dézipper dans son dossier ~/.vim&lt;br /&gt;
&lt;br /&gt;
=Tags C++=&lt;br /&gt;
Il faut ensuite télécharger les [http://www.vim.org/scripts/script.php?script_id=2358 stdc++ tags].&lt;br /&gt;
* D&#039;abord créer un dossier ~/.vim/tags si inexistant&lt;br /&gt;
* Extraire le dossier &amp;lt;code&amp;gt;cpp_src&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;tags&amp;lt;/coed&amp;gt;&lt;br /&gt;
* Les créer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/cpp -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et enfin rajouter dans la configuration de Vim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tags Qt4=&lt;br /&gt;
Plus rien de très compliqué :&lt;br /&gt;
* Générer les ctags :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -f ~/.vim/tags/qt -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/Qt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et rajouter dans la configuration de son Vim :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/qt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=Discussion:Auto-compl%C3%A9tion_C_/Qt4_avec_Vim&amp;diff=49</id>
		<title>Discussion:Auto-complétion C /Qt4 avec Vim</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=Discussion:Auto-compl%C3%A9tion_C_/Qt4_avec_Vim&amp;diff=49"/>
		<updated>2011-02-03T13:10:39Z</updated>

		<summary type="html">&lt;p&gt;Remeh : Page créée avec « Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus p... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vim est un éditeur de texte puissant. Afin de rendre encore plus complet et pratique, ce tutoriel va expliquer comment configurer la complétion automatique en C++ et plus particulièrement pour Qt4.&lt;br /&gt;
&lt;br /&gt;
Ce tutoriel est basé sur [http://vim.wikia.com/wiki/C%2B%2B_code_completion cet article].&lt;br /&gt;
&lt;br /&gt;
Les paquets nécessaires sont : vim, ctags&lt;br /&gt;
&lt;br /&gt;
=Configuration de Vim=&lt;br /&gt;
Votre fichier de configuration doit comporter les commandes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set nocp&lt;br /&gt;
filetype plugin on&lt;br /&gt;
&amp;quot; Reconstruire les tags de son projet avec Ctrl-F12&lt;br /&gt;
map &amp;lt;C-F12&amp;gt; :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .&amp;lt;CR&amp;gt;&lt;br /&gt;
&amp;quot; OmniCppComplete&lt;br /&gt;
let OmniCpp_NamespaceSearch = 1&lt;br /&gt;
let OmniCpp_GlobalScopeSearch = 1&lt;br /&gt;
let OmniCpp_ShowAccess = 1&lt;br /&gt;
let OmniCpp_ShowPrototypeInAbbr = 1 &amp;quot; show function parameters&lt;br /&gt;
let OmniCpp_MayCompleteDot = 1 &amp;quot; autocomplete after .&lt;br /&gt;
let OmniCpp_MayCompleteArrow = 1 &amp;quot; autocomplete after -&amp;gt;&lt;br /&gt;
let OmniCpp_MayCompleteScope = 1 &amp;quot; autocomplete after ::&lt;br /&gt;
let OmniCpp_DefaultNamespaces = [&amp;quot;std&amp;quot;, &amp;quot;_GLIBCXX_STD&amp;quot;]&lt;br /&gt;
&amp;quot; gestion plus intelligente du popup&lt;br /&gt;
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif&lt;br /&gt;
set completeopt=menuone,menu,longest,preview&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Omnicppcomplete=&lt;br /&gt;
Il faut d&#039;abord récupérer [http://www.vim.org/scripts/script.php?script_id=1520 Omnicppcomplete].&lt;br /&gt;
Pour son installation :&lt;br /&gt;
* Le dézipper dans son dossier ~/.vim&lt;br /&gt;
&lt;br /&gt;
=Tags C++=&lt;br /&gt;
Il faut ensuite télécharger les [http://www.vim.org/scripts/script.php?script_id=2358 stdc++ tags].&lt;br /&gt;
* D&#039;abord créer un dossier ~/.vim/tags si inexistant&lt;br /&gt;
* Extraire le dossier &amp;lt;code&amp;gt;cpp_src&amp;lt;/code&amp;gt; dans le dossier &amp;lt;code&amp;gt;tags&amp;lt;/coed&amp;gt;&lt;br /&gt;
* Les créer :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/.vim/tags/&lt;br /&gt;
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f cpp cpp_src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et enfin rajouter dans la configuration de Vim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/cpp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tags Qt4=&lt;br /&gt;
Plus rien de très compliqué :&lt;br /&gt;
* Générer les ctags :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f qt /usr/include/Qt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Et rajouter dans la configuration de son Vim :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set tags+=~/.vim/tags/qt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=G%C3%A9n%C3%A9ralit%C3%A9s_sur_linux&amp;diff=48</id>
		<title>Généralités sur linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=G%C3%A9n%C3%A9ralit%C3%A9s_sur_linux&amp;diff=48"/>
		<updated>2011-02-02T14:02:37Z</updated>

		<summary type="html">&lt;p&gt;Remeh : Archlinux locales&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ce howto a été écrit au départ pour debian etch puis a été adapté pour debian lenny. Il reste cependant valable la plupart du temps pour ces deux versions de debian. &lt;br /&gt;
&lt;br /&gt;
=Généralités sur linux=&lt;br /&gt;
&lt;br /&gt;
==Fichiers==&lt;br /&gt;
&lt;br /&gt;
Le système de fichier ext3 est principalement destiné aux systèmes basés sur GNU/Linux. Il permet des fichiers ayant un nom jusqu&#039;à 256 caractères.&lt;br /&gt;
Il ne faut pas perde de vue que, sous linux, tous les caractères ASCII sont différenciés, ce qui implique notamment la différenciation majuscule/minuscule : PoF.txt et pof.txt seront deux fichiers différents !&lt;br /&gt;
Chaque fichier à des attributs (des droits). Cette partie est traité dans la partie 3. Droits, permissions des fichiers et dossiers.&lt;br /&gt;
Le système de fichier ext4 est le successeur de ext3. Ce nouveau système de fichier gère les partitions jusqu&#039;à 1 024 pébioctets (soit &amp;lt;math&amp;gt;2^{50}&amp;lt;/math&amp;gt; octets) et a une meilleur gestion de la fragmentation que son prédécesseur.&lt;br /&gt;
&lt;br /&gt;
==L&#039;arborescence==&lt;br /&gt;
Sous linux, l&#039;arborescence part d&#039;une origine commune qu&#039;on appel &amp;quot;root&amp;quot; (racine en français) ou &amp;quot;/&amp;quot;. L&#039;organisation standard des répertoires est décrite dans le [http://www.pathname.com/fhs/ Filesystem Hierarchy Standard]. Le respect de cette hiérarchie assure compatibilité et portabilité des systèmes linux.&lt;br /&gt;
&lt;br /&gt;
==Droits, permissions des fichiers et dossiers==&lt;br /&gt;
&lt;br /&gt;
===A propos des permissions et des droits===&lt;br /&gt;
On peut différencier trois catégories de permissions :&lt;br /&gt;
* user (u) qui défini les permissions du propriétaire du fichier.&lt;br /&gt;
* group (g) qui défini les permissions du groupe auquel appartient le fichier.&lt;br /&gt;
* other (o) qui défini les permissions de tous les autres utilisateurs du serveur.&lt;br /&gt;
Chaque fichier et chaque dossier appartient à un user (son propriétaire) et à un group.&lt;br /&gt;
&lt;br /&gt;
On peut ensuite voir les trois types de permissions s&#039;appliquant pour les trois catégories :&lt;br /&gt;
- read (r) qui défini le droit de lecture du fichier et d&#039;affichage (listing) du dossier.&lt;br /&gt;
- write (w) qui défini le droit en écriture dans le fichier ou le dossier (écriture et suppression).&lt;br /&gt;
- execute (x) qui défini le droit d&#039;exécution du fichier et l&#039;autorisation d&#039;entrer dans un dossier.&lt;br /&gt;
&lt;br /&gt;
Les permissions peuvent être changés de deux manières : soit en utilisant les lettres (r, w et x), soit en utilisant les bits de permission. Le tableau suivant résume les permissions :&lt;br /&gt;
{|&lt;br /&gt;
!User (u)&lt;br /&gt;
!Group (g)&lt;br /&gt;
!Other (o)&lt;br /&gt;
|-&lt;br /&gt;
!read write exec&lt;br /&gt;
!read write exec&lt;br /&gt;
!read write exec&lt;br /&gt;
|-&lt;br /&gt;
!400 200 100&lt;br /&gt;
!40 20 10&lt;br /&gt;
!4 2 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les permissions maximales sont donc rwxrwxrwx, ou 777.&lt;br /&gt;
&lt;br /&gt;
Petit exemple :&lt;br /&gt;
Soit un utilisateur blah ayant ses fichiers dans /home/blah/. Tous ses fichiers appartiennent à l&#039;utilisateur blah et au groupe blah et sont en permission 750. Ses fichiers ne seront donc accessible que par lui même et par les membres du groupe blah.&lt;br /&gt;
Pour qu&#039;un autre utilisateur ait accès aux fichiers de blah, il faudra donc que cet autre utilisateur appartienne au groupe blah.&lt;br /&gt;
&lt;br /&gt;
Pour changer les permissions d&#039;un fichier/dossier:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod u+rwx plop : ajoute les permissions rwx à user pour le fichier/dossier plop &amp;lt;br /&amp;gt;&lt;br /&gt;
chmod g+rwx plop : ajoute les permissions rwx au group pour le fichier/dossier plop &amp;lt;br /&amp;gt;&lt;br /&gt;
chmod o+rwx plop : ajoute les permissions rwx a other pour le fichier/dossier plop &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer les permissions d&#039;un dossier et de tout ses sous-répertoires en ajoutant l&#039;option -R :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod -R o+r dir/&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, vous aurez peut-être besoin de différencier les droits des fichiers et des dossiers (par exemple : les dossier devront être +x, mais pas les fichier). &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; gère cela : les lettres r w x en minuscules indiquent des fichiers, et les lettres R W X en majuscule indiquent des dossier. Par exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod -R o-x+X dir/&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe des permissions d&#039;accès spéciales. Elles ne peuvent être attribués que par le propriétaire du fichier (ou par root). Leurs valeurs octales sont 1000, 2000 et 4000.&lt;br /&gt;
Les bits setuid et setgid sont ce qu&#039;on appel les permissions étendues : ils permettent de donner temporairement à un utilisateur les droits qui sont normalement ceux du propriétaire du fichier.&lt;br /&gt;
* setuid : il faut utiliser la commande &amp;lt;code&amp;gt;chmod u+s&amp;lt;/code&amp;gt; (ou chmod 4xxx). Un programme exécutant un tel fichier/dossier peut alors s&#039;exécuter sous le nom d&#039;un autre utilisateur. Par exemple, si un fichier appartenant à root est setuidé, tout utilisateur exécutant ce fichier peut effectuer ses tâches avec les permissions associés à root.&lt;br /&gt;
* setgid : il faut utiliser la commande &amp;lt;code&amp;gt;chmod g+s&amp;lt;/code&amp;gt; (ou chmod 2xxx). C&#039;est le même principe que setgid, mais appliqué au groupe. &lt;br /&gt;
* sticky bit : il faut utiliser la commande &amp;lt;code&amp;gt;chmod u+t&amp;lt;/code&amp;gt; (ou chmod 1xxx). Pour les dossiers : lorsque ce droit est positionné, il empêche la suppression des fichiers du dossier à tout utilisateur n&#039;étant pas le propriétaire du fichier. Cependant, un utilisateur ayant le droit d&#039;écrire dans le fichier pourra toujours le modifier (et donc, le vider complètement s&#039;il le veut !). Pour les fichiers : le positionnement de ce droit indique que le fichier devra rester en mémoire même après son exécution. Le but était d&#039;éviter de charger/décharger trop souvent les fichiers souvent utilisés et d&#039;améliorer ainsi les performances.&lt;br /&gt;
&lt;br /&gt;
===L&#039;umask===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;umask&amp;lt;/code&amp;gt; permet de définir pour chaque utilisateur avec quelles permissions seront créées les fichiers et dossiers.&lt;br /&gt;
Pour calculer l&#039;umask à appliquer, il faut soustraire les permissions voulues aux permissions totales (777).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour que les fichiers/dossiers soient créées avec les droits 755, il faudra mettre l&#039;umask à 22 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
umask 0022&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Selon moi, un umask a 0027 est l&#039;idéal. Cela permet de ne jamais créer de fichiers/dossiers accessibles par other :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
umask 0027&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut cependant redéfinir l&#039;umask à chaque fois que vous vous reloguez (connexion ssh, ouverture d&#039;un terminal). Pour éviter d&#039;avoir à redéfinir l&#039;umask à chaque fois, vous pouvez ajouter la ligne suivante dans le fichier &amp;lt;code&amp;gt;.bash_profile&amp;lt;/code&amp;gt; situé dans le home de chaque utilisateur :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
umask 0027&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour automatiser la définition de l&#039;umask lors de la création d&#039;un utilisateur, vous pouvez ajouter cette même ligne dans le fichier &amp;lt;code&amp;gt;/etc/skel/.bash_profile&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
N&#039;oubliez pas de définir l&#039;umask de votre utilisateur root dans &amp;lt;code&amp;gt;/root/.bash_profile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Les droits de /home===&lt;br /&gt;
Vous aurez peut-être remarqué que, lorsqu&#039;un utilisateur se logue, il peut lister les répertoires de /home. Même s&#039;il ne peut pas voir les fichiers des autres utilisateurs, il se peut que vous trouviez gênant qu&#039;un utilisateur connaisse les logins des autres utilisateurs. Vous pouvez régler ce problème en enlevant le droit en lecture pour other de /home comme suit :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod o-r /home&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il en ira de même si vous ne voulez pas qu&#039;un utilisateur puisse voir l&#039;arborescence située dans /&lt;br /&gt;
&lt;br /&gt;
===uid et le gid d&#039;un utilisateur et modification du groupe===&lt;br /&gt;
L&#039;uid (user ID) d&#039;un utilisateur est son identifiant numérique. Il est unique à chaque utilisateur. Il est généralement supérieur à 1000.&amp;lt;br /&amp;gt;&lt;br /&gt;
Le gid (group ID) d&#039;un groupe est son identifiant numérique. Il est unique à chaque groupe et est généralement supérieur à 1000.&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour récupérer l&#039;uid, le gid et les groupes d&#039;un utilisateur, vous pouvez utiliser la commande &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ id&lt;br /&gt;
uid=1000(pfoo) gid=1000(pfoo) groupes=1000(pfoo)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Le gid correspond au groupe principal de l&#039;utilisateur. Tous les autres groupes listés après sont dits secondaires.&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l&#039;utilisateur pfoo dans le groupe audio, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
usermod -G -a audio pfoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour changer le groupe principal de l&#039;utilisateur pfoo, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
usermod -g legroupe pfoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Les liens==&lt;br /&gt;
Sous linux chaque fichier est repéré physiquement sur le disque par un inode (c&#039;est en quelque sorte le vrai nom des données sur le disque). Le nom de fichier (filename) est ce qu&#039;on appel une étiquette et pointe sur l&#039;inode.&lt;br /&gt;
&lt;br /&gt;
===Hard link===&lt;br /&gt;
On créé un hardlink avec la commande &amp;lt;code&amp;gt;ln&amp;lt;/code&amp;gt;. Ils permettent de créer une nouvelle étiquette pointant vers un inode. Une fois un hardlink créé, on peut accéder au fichier aussi bien avec le nom d&#039;origine qu&#039;avec le nom que l&#039;on vient de créer. Si on efface le nom d&#039;origine, le fichier reste accessible par le hardlink.&lt;br /&gt;
Notez que les hardlinks doivent être situé sur le même disque physique.&lt;br /&gt;
&lt;br /&gt;
Pour créer un hardlink :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ln source nouveau_nom&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
source est le nom du fichier pour lequel vous voulez créer un hardlink, et nouveau_nom est le nom du lien&lt;br /&gt;
&lt;br /&gt;
===symbolic link===&lt;br /&gt;
&lt;br /&gt;
Un lien symbolic est une nouvelle étiquette pointant cette fois vers un nom de fichier. Si on efface le fichier d&#039;origine, le lien ne signifie plus rien.&lt;br /&gt;
&lt;br /&gt;
Pour créer un lien symbolique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ln -s source destination&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
source est le nom du fichier pour lequel vous voulez créer un hardlink, et destination est le nom du lien&lt;br /&gt;
&lt;br /&gt;
==Ajouter et supprimer des utilisateurs==&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un groupe il faut utiliser la commande groupadd :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
groupadd -g GID GROUPE&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
GID est le numéro du groupe. GROUPE est le nom du groupe.&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un utilisateur il faut utiliser la commande useradd :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
useradd -g GID -u UID LOGIN -d home_dir -m&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
GID est le numéro du groupe principal de l&#039;utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
UID est le numéro de l&#039;utilisateur. LOGIN est le login de l&#039;utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
home_dir est le répertoire de l&#039;utilisateur. Généralement /home/LOGIN.&amp;lt;br /&amp;gt;&lt;br /&gt;
L&#039;option -m précise qu&#039;il faut créer le répertoire personnel de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
==Le patch kernel grsecurity et la restriction des droits de /proc==&lt;br /&gt;
&lt;br /&gt;
Le patch grsecurity pour le noyau linux permet d&#039;augmenter la sécurité de votre machine. Cependant, la restriction des droits qu&#039;il peut imposer sur certains répertoires peut être quelque-peut gênante, notamment pour les services utilisant l&#039;ipv6. Si le kernel est bien configuré il a attribué les répertoires dont il a durcit les privilèges à un groupe (défini par la directive de configuration CONFIG_GRKERNSEC_PROC_GID). Si certains services posent des problèmes au lancement (c&#039;est le cas par exemple pour postfix ou bind9 lorsqu&#039;on les configure pour gérer l&#039;ipv6) ajoutez les simplement au groupe des sous-répertoires de /proc/.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez snmpd, il faut modifier la ligne de lancement dans &amp;lt;code&amp;gt;/etc/default/snmpd&amp;lt;/code&amp;gt; en ajoutant l&#039;option &amp;lt;code&amp;gt;-g GID&amp;lt;/code&amp;gt; où GID est le groupe défini par CONFIG_GRKERNSEC_PROC_GID.&lt;br /&gt;
&lt;br /&gt;
==Le programme tar==&lt;br /&gt;
&lt;br /&gt;
=Généralités sur debian=&lt;br /&gt;
&lt;br /&gt;
==Le lancement automatique au boot==&lt;br /&gt;
&lt;br /&gt;
Quand vous installez des serveurs sous debian, un fichier permettant de le lancer, de l&#039;arrêter, et plus rarement de reloader sa configuration est créé dans /etc/init.d/&lt;br /&gt;
Lorsque vous lancez votre serveur, certains services devront être lancé automatiquement. Ce lancement est effectué grâce à des fichiers situés dans /etc/rc?.d/ Le point d&#039;interrogation (?) représente un chiffre contenu entre 0 et 6. Ce chiffre représente l&#039;init. L&#039;init par défaut qui est exécuté au boot est défini dans le fichier /etc/inittab&lt;br /&gt;
Chez moi par exemple, j&#039;ai la ligne suivante dans mon /etc/inittab :&lt;br /&gt;
&amp;lt;pre&amp;gt;id:2:initdefault:&amp;lt;/pre&amp;gt;&lt;br /&gt;
Celà signifie que lorsque je démarre mon serveur, il passe directement en &amp;lt;code&amp;gt;init 2&amp;lt;/code&amp;gt;. C&#039;est donc les fichiers situés dans /etc/rc2.d/ qui seront utilisés pour lancer les services.&lt;br /&gt;
&lt;br /&gt;
Il est bon de noter que les fichiers situés dans &amp;lt;code&amp;gt;/etc/rc2.d/&amp;lt;/code&amp;gt; sont en fait des liens virtuels pointant vers le lanceur situé dans &amp;lt;code&amp;gt;/etc/init.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
Si on supprime l&#039;un de ces lignes virtuels, le service en question ne sera plus lancé automatiquement.&lt;br /&gt;
Si on ajoute un lien, le service correspondant sera alors automatiquement lancé au boot.&lt;br /&gt;
&lt;br /&gt;
Vous avez peut-être remarqué que les liens ne sont pas nommé uniquement par le nom du service qu&#039;ils lancent, mais qu&#039;ils sont préfixés d&#039;une lettre et de deux chiffres.&lt;br /&gt;
Un lien commençant par un S sera lancé, alors qu&#039;un lien commençant par un K sera stoppé (K comme Kill)&lt;br /&gt;
Le nombre suivant la lettre S ou K définit la priorité de lancement ou d&#039;arrêt.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer l&#039;init actuel avec la commande telinit suivit du numéro de l&#039;init voulu.&lt;br /&gt;
L&#039;init 0 correspont a l&#039;arrêt du serveur. L&#039;init 6 correspond au reboot. L&#039;init 1 est généralement utilisé pour un système single-user, et les init 2 à 5 pour un système multi-user.&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, voici comment créer un lien virtuel pour ajouter un service au lancement automatique :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ln -s /etc/init.d/exemple /etc/rc2.d/S20exemple&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez tout de même que beaucoup de serveurs (apache, proftpd, ...) proposent dans leur fichier &amp;lt;code&amp;gt;/etc/default/&amp;lt;/code&amp;gt; de définir s&#039;ils doivent se lancer ou non au boot. Cela permet de ne pas toucher aux fichiers de /etc/rc?.d/&lt;br /&gt;
&lt;br /&gt;
=Généralités sur ce howto=&lt;br /&gt;
&lt;br /&gt;
Je vais commencer par décrire l&#039;arborescence que la suite du howto utilise.&lt;br /&gt;
Le dossier &amp;lt;code&amp;gt;/srv/&amp;lt;/code&amp;gt; va contenir tous les dossiers et fichiers en rapport directement avec le serveur. Sur mon installation, j&#039;ai créé une partition à part pour &amp;lt;code&amp;gt;/srv/&amp;lt;/code&amp;gt; ce qui permet de ne pas perdre les données lors d&#039;une réinstallation.&lt;br /&gt;
&amp;lt;code&amp;gt;/srv/bind/&amp;lt;/code&amp;gt; contient les différentes zones dns que mon serveur bind9 gère.&lt;br /&gt;
&amp;lt;code&amp;gt;/srv/http/&amp;lt;/code&amp;gt; contient les différents sites internet que mon serveur héberge du moment qu&#039;ils ne sont pas rattaché à un utilisateur en particulier. Les sites internet rattachés à un utilisateur doivent être dans le dossier home de l&#039;utilisateur en question.&lt;br /&gt;
&lt;br /&gt;
Notez que pour la suite de ce howto, tous les changements de permissions effectués supposent que vous êtes en umask 0027.&lt;br /&gt;
Vous pouvez voir votre umask actuel avec la commande umask. Si votre umask n&#039;est pas 0027, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;umask 0027&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le répertoire /srv s&#039;il n&#039;existe pas :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /srv&lt;br /&gt;
chmod o+rx /srv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Généralités sur l&#039;installation d&#039;un serveur dédié sous debian=&lt;br /&gt;
&lt;br /&gt;
==Configurer les locales==&lt;br /&gt;
&lt;br /&gt;
Les paramètres régionaux (locales en anglais) sont un ensemble de définitions de textes et de formats des fichiers.&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&lt;br /&gt;
Pour modifier la locale sous Debian, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Au premier menu, cochez les locales suivantes avec la touche espace :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fr_FR ISO-8859-1&lt;br /&gt;
fr_FR.UTF-8 UTF-8&lt;br /&gt;
fr_FR.UTF-8@euro UTF-8&lt;br /&gt;
fr_FR@euro ISO-8859-15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Au menu suivant, définissez &amp;lt;code&amp;gt;fr_FR.UTF-8&amp;lt;/code&amp;gt; comme locale active par défaut.&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, les locales actives sont listées dans &amp;lt;code&amp;gt;/etc/locale.gen&amp;lt;/code&amp;gt;. Vous pouvez modifier manuellement les locales actives en les ajoutant dans ce fichier puis en utilisant la commande &amp;lt;code&amp;gt;locale-gen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez des fichiers écrits avec une locale différente, vous pouvez rectifier vos fichiers avec &amp;lt;code&amp;gt;iconv&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===ArchLinux===&lt;br /&gt;
&lt;br /&gt;
Pour modifier la locale sous ArchLinux, il y a 3 étapes distinctes :&lt;br /&gt;
* Indiquer quelles locales peuvent être utilisées en modifiant le fichier &amp;lt;code&amp;gt;/etc/locale.gen&amp;lt;/code&amp;gt; : il faut les décommenter en retirant le #&lt;br /&gt;
* Re-générer les locales en tapant en root la commande &amp;lt;code&amp;gt;locale-gen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Préciser laquelle utiliser dans le fichier &amp;lt;code&amp;gt;/etc/rc.conf&amp;lt;/code&amp;gt; à la variable &amp;lt;code&amp;gt;LOCALE&amp;lt;/code&amp;gt; quasiment tout en haut du fichier. Exemple : &amp;lt;code&amp;gt;LOCALE=&amp;quot;fr_FR.utf8&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurer l&#039;hostname du serveur==&lt;br /&gt;
&lt;br /&gt;
Généralement, l&#039;hostname de votre serveur correspond au nom de la machine chez la société chez qui vous louez le serveur. C&#039;est ce même nom qui est affiché dans la ligne de votre shell lorsque vous vous loguez en ssh. Si vous possédez votre domaine, vous voudrez probablement avoir votre propre hostname. Dans mon cas, mon serveur s&#039;appelle core.csnu.org.&lt;br /&gt;
&lt;br /&gt;
Le premier fichier à modifier est &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;. Ce fichier défini notamment le nom affiché dans le shell. Tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo core.csnu.org &amp;gt; /etc/hostname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut aussi modifier le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; et modifier la correspondance entre l&#039;ip de la machine et l&#039;hostname. Dans mon cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
213.186.47.110  core.csnu.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurer une adresse ipv6==&lt;br /&gt;
&lt;br /&gt;
Si la société chez qui vous louez votre serveur vous a alloué un bloc ipv6 vous voudrez peut-être configurer des adresses ipv6 sur votre serveur. Dans mon cas, le bloc ipv6 est 2001:41D0:1:127d::/64.&lt;br /&gt;
Pour ajouter l&#039;adresse ipv6 2001:41d0:1:127d::1 à l&#039;interface eth0 de votre serveur, tapez:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig eth0 inet6 add 2001:41d0:1:127d::1/64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour supprimer cette adresse ipv6 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig eth0 inet6 del  2001:41d0:1:127d::1/64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour que l&#039;adresse ipv6 soit configurée automatiquement au boot il faut ajouter les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
iface eth0 inet6 static&lt;br /&gt;
       address 2001:41d0:1:127d::1&lt;br /&gt;
       netmask 64&lt;br /&gt;
       #mtu 1280&lt;br /&gt;
       up echo 0 &amp;gt; /proc/sys/net/ipv6/conf/all/autoconf&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, il faut modifier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
::1 localhost.localdomain localhost&lt;br /&gt;
2001:41d0:1:127d::1 core.csnu.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Automatiser la création du motd==&lt;br /&gt;
&lt;br /&gt;
Le fichier &amp;lt;code&amp;gt;/etc/motd&amp;lt;/code&amp;gt; contient le message qui doit être affiché lorsque quelqu&#039;un se log en ssh. Vous pouvez y entrer par exemple un message que vous voulez passer aux utilisateurs du serveur.&lt;br /&gt;
&lt;br /&gt;
Si vous voulez bénéficier d&#039;un motd graphique, installez le paquet &amp;lt;code&amp;gt;linuxlogo&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install linuxlogo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez créer un logo en dirigeant la sorti de la commande &amp;lt;code&amp;gt;linux_logo&amp;lt;/code&amp;gt; vers &amp;lt;code&amp;gt;/etc/motd&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux_logo &amp;gt; /etc/motd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Si vous voulez automatiser la création d&#039;un motd dynamique qui se modifiera par exemple à chaque changement de kernel il faut créer un script sh qui sera lancé à chaque démarrage. Personnellement, je me sers du fichier &amp;lt;code&amp;gt;/etc/rc.local&amp;lt;/code&amp;gt;.&lt;br /&gt;
Voici mon fichier &amp;lt;code&amp;gt;/etc/rc.local&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
linux_logo &amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;Debian GNU/Linux 4.0&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
uname -a &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;server    : `hostname | cut -f 1 -d &amp;quot;.&amp;quot;`&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;ip        : `cat /etc/network/interfaces | grep &amp;quot;address&amp;quot; | head -n 1 | cut -f 2 -d &amp;quot; &amp;quot;`&amp;quot;  &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;ip6	: `tac /etc/network/interfaces | grep &amp;quot;address&amp;quot; |  head -n 1 | cut -f 2 -d &amp;quot; &amp;quot;`&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;hostname  : `hostname`&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
/bin/cp /etc/motd /etc/issue&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Des mails temporaires avec exim4==&lt;br /&gt;
&lt;br /&gt;
Vous aurez peut-être temporairement besoin d&#039;un serveur smtp local pour gérer vos envois de mails (crontab, ...). Pour celà, nous allons rapidement configurer &amp;lt;code&amp;gt;Exim4&amp;lt;/code&amp;gt;.&lt;br /&gt;
Pour commencez, installez &amp;lt;code&amp;gt;mailx&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mailx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;mailx&amp;lt;/code&amp;gt; permet d&#039;envoyer et de recevoir des mails (c&#039;est un MUA, ou Mail User Agent). Les dépendances de mailx sous debian vont installer un serveur smtp. Sous debian, c&#039;est exim4 qui va est installé par défaut.&lt;br /&gt;
&lt;br /&gt;
Vous serrez amené à répondre à plusieurs questions pour la configuration d&#039;exim4. Rien de bien compliqué.&lt;br /&gt;
Pour une raison obscure, lors de l&#039;installation, je ne pouvais pas modifier le nom du serveur (mailname). Si vous êtes dans le même cas de figure, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/mailname&amp;lt;/code&amp;gt; et d&#039;y entrer votre domaine. Une fois cela fait, il ne reste plus qu&#039;à relancer la configuration d&#039;exim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg-reconfigure exim4-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
	<entry>
		<id>https://wiki.unscdf.org/index.php?title=G%C3%A9n%C3%A9ralit%C3%A9s_sur_linux&amp;diff=47</id>
		<title>Généralités sur linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.unscdf.org/index.php?title=G%C3%A9n%C3%A9ralit%C3%A9s_sur_linux&amp;diff=47"/>
		<updated>2011-02-02T14:01:54Z</updated>

		<summary type="html">&lt;p&gt;Remeh : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ce howto a été écrit au départ pour debian etch puis a été adapté pour debian lenny. Il reste cependant valable la plupart du temps pour ces deux versions de debian. &lt;br /&gt;
&lt;br /&gt;
=Généralités sur linux=&lt;br /&gt;
&lt;br /&gt;
==Fichiers==&lt;br /&gt;
&lt;br /&gt;
Le système de fichier ext3 est principalement destiné aux systèmes basés sur GNU/Linux. Il permet des fichiers ayant un nom jusqu&#039;à 256 caractères.&lt;br /&gt;
Il ne faut pas perde de vue que, sous linux, tous les caractères ASCII sont différenciés, ce qui implique notamment la différenciation majuscule/minuscule : PoF.txt et pof.txt seront deux fichiers différents !&lt;br /&gt;
Chaque fichier à des attributs (des droits). Cette partie est traité dans la partie 3. Droits, permissions des fichiers et dossiers.&lt;br /&gt;
Le système de fichier ext4 est le successeur de ext3. Ce nouveau système de fichier gère les partitions jusqu&#039;à 1 024 pébioctets (soit &amp;lt;math&amp;gt;2^{50}&amp;lt;/math&amp;gt; octets) et a une meilleur gestion de la fragmentation que son prédécesseur.&lt;br /&gt;
&lt;br /&gt;
==L&#039;arborescence==&lt;br /&gt;
Sous linux, l&#039;arborescence part d&#039;une origine commune qu&#039;on appel &amp;quot;root&amp;quot; (racine en français) ou &amp;quot;/&amp;quot;. L&#039;organisation standard des répertoires est décrite dans le [http://www.pathname.com/fhs/ Filesystem Hierarchy Standard]. Le respect de cette hiérarchie assure compatibilité et portabilité des systèmes linux.&lt;br /&gt;
&lt;br /&gt;
==Droits, permissions des fichiers et dossiers==&lt;br /&gt;
&lt;br /&gt;
===A propos des permissions et des droits===&lt;br /&gt;
On peut différencier trois catégories de permissions :&lt;br /&gt;
* user (u) qui défini les permissions du propriétaire du fichier.&lt;br /&gt;
* group (g) qui défini les permissions du groupe auquel appartient le fichier.&lt;br /&gt;
* other (o) qui défini les permissions de tous les autres utilisateurs du serveur.&lt;br /&gt;
Chaque fichier et chaque dossier appartient à un user (son propriétaire) et à un group.&lt;br /&gt;
&lt;br /&gt;
On peut ensuite voir les trois types de permissions s&#039;appliquant pour les trois catégories :&lt;br /&gt;
- read (r) qui défini le droit de lecture du fichier et d&#039;affichage (listing) du dossier.&lt;br /&gt;
- write (w) qui défini le droit en écriture dans le fichier ou le dossier (écriture et suppression).&lt;br /&gt;
- execute (x) qui défini le droit d&#039;exécution du fichier et l&#039;autorisation d&#039;entrer dans un dossier.&lt;br /&gt;
&lt;br /&gt;
Les permissions peuvent être changés de deux manières : soit en utilisant les lettres (r, w et x), soit en utilisant les bits de permission. Le tableau suivant résume les permissions :&lt;br /&gt;
{|&lt;br /&gt;
!User (u)&lt;br /&gt;
!Group (g)&lt;br /&gt;
!Other (o)&lt;br /&gt;
|-&lt;br /&gt;
!read write exec&lt;br /&gt;
!read write exec&lt;br /&gt;
!read write exec&lt;br /&gt;
|-&lt;br /&gt;
!400 200 100&lt;br /&gt;
!40 20 10&lt;br /&gt;
!4 2 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les permissions maximales sont donc rwxrwxrwx, ou 777.&lt;br /&gt;
&lt;br /&gt;
Petit exemple :&lt;br /&gt;
Soit un utilisateur blah ayant ses fichiers dans /home/blah/. Tous ses fichiers appartiennent à l&#039;utilisateur blah et au groupe blah et sont en permission 750. Ses fichiers ne seront donc accessible que par lui même et par les membres du groupe blah.&lt;br /&gt;
Pour qu&#039;un autre utilisateur ait accès aux fichiers de blah, il faudra donc que cet autre utilisateur appartienne au groupe blah.&lt;br /&gt;
&lt;br /&gt;
Pour changer les permissions d&#039;un fichier/dossier:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod u+rwx plop : ajoute les permissions rwx à user pour le fichier/dossier plop &amp;lt;br /&amp;gt;&lt;br /&gt;
chmod g+rwx plop : ajoute les permissions rwx au group pour le fichier/dossier plop &amp;lt;br /&amp;gt;&lt;br /&gt;
chmod o+rwx plop : ajoute les permissions rwx a other pour le fichier/dossier plop &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer les permissions d&#039;un dossier et de tout ses sous-répertoires en ajoutant l&#039;option -R :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod -R o+r dir/&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, vous aurez peut-être besoin de différencier les droits des fichiers et des dossiers (par exemple : les dossier devront être +x, mais pas les fichier). &amp;lt;code&amp;gt;chmod&amp;lt;/code&amp;gt; gère cela : les lettres r w x en minuscules indiquent des fichiers, et les lettres R W X en majuscule indiquent des dossier. Par exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod -R o-x+X dir/&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe des permissions d&#039;accès spéciales. Elles ne peuvent être attribués que par le propriétaire du fichier (ou par root). Leurs valeurs octales sont 1000, 2000 et 4000.&lt;br /&gt;
Les bits setuid et setgid sont ce qu&#039;on appel les permissions étendues : ils permettent de donner temporairement à un utilisateur les droits qui sont normalement ceux du propriétaire du fichier.&lt;br /&gt;
* setuid : il faut utiliser la commande &amp;lt;code&amp;gt;chmod u+s&amp;lt;/code&amp;gt; (ou chmod 4xxx). Un programme exécutant un tel fichier/dossier peut alors s&#039;exécuter sous le nom d&#039;un autre utilisateur. Par exemple, si un fichier appartenant à root est setuidé, tout utilisateur exécutant ce fichier peut effectuer ses tâches avec les permissions associés à root.&lt;br /&gt;
* setgid : il faut utiliser la commande &amp;lt;code&amp;gt;chmod g+s&amp;lt;/code&amp;gt; (ou chmod 2xxx). C&#039;est le même principe que setgid, mais appliqué au groupe. &lt;br /&gt;
* sticky bit : il faut utiliser la commande &amp;lt;code&amp;gt;chmod u+t&amp;lt;/code&amp;gt; (ou chmod 1xxx). Pour les dossiers : lorsque ce droit est positionné, il empêche la suppression des fichiers du dossier à tout utilisateur n&#039;étant pas le propriétaire du fichier. Cependant, un utilisateur ayant le droit d&#039;écrire dans le fichier pourra toujours le modifier (et donc, le vider complètement s&#039;il le veut !). Pour les fichiers : le positionnement de ce droit indique que le fichier devra rester en mémoire même après son exécution. Le but était d&#039;éviter de charger/décharger trop souvent les fichiers souvent utilisés et d&#039;améliorer ainsi les performances.&lt;br /&gt;
&lt;br /&gt;
===L&#039;umask===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;umask&amp;lt;/code&amp;gt; permet de définir pour chaque utilisateur avec quelles permissions seront créées les fichiers et dossiers.&lt;br /&gt;
Pour calculer l&#039;umask à appliquer, il faut soustraire les permissions voulues aux permissions totales (777).&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour que les fichiers/dossiers soient créées avec les droits 755, il faudra mettre l&#039;umask à 22 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
umask 0022&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Selon moi, un umask a 0027 est l&#039;idéal. Cela permet de ne jamais créer de fichiers/dossiers accessibles par other :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
umask 0027&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut cependant redéfinir l&#039;umask à chaque fois que vous vous reloguez (connexion ssh, ouverture d&#039;un terminal). Pour éviter d&#039;avoir à redéfinir l&#039;umask à chaque fois, vous pouvez ajouter la ligne suivante dans le fichier &amp;lt;code&amp;gt;.bash_profile&amp;lt;/code&amp;gt; situé dans le home de chaque utilisateur :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
umask 0027&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour automatiser la définition de l&#039;umask lors de la création d&#039;un utilisateur, vous pouvez ajouter cette même ligne dans le fichier &amp;lt;code&amp;gt;/etc/skel/.bash_profile&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
N&#039;oubliez pas de définir l&#039;umask de votre utilisateur root dans &amp;lt;code&amp;gt;/root/.bash_profile&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Les droits de /home===&lt;br /&gt;
Vous aurez peut-être remarqué que, lorsqu&#039;un utilisateur se logue, il peut lister les répertoires de /home. Même s&#039;il ne peut pas voir les fichiers des autres utilisateurs, il se peut que vous trouviez gênant qu&#039;un utilisateur connaisse les logins des autres utilisateurs. Vous pouvez régler ce problème en enlevant le droit en lecture pour other de /home comme suit :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
chmod o-r /home&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il en ira de même si vous ne voulez pas qu&#039;un utilisateur puisse voir l&#039;arborescence située dans /&lt;br /&gt;
&lt;br /&gt;
===uid et le gid d&#039;un utilisateur et modification du groupe===&lt;br /&gt;
L&#039;uid (user ID) d&#039;un utilisateur est son identifiant numérique. Il est unique à chaque utilisateur. Il est généralement supérieur à 1000.&amp;lt;br /&amp;gt;&lt;br /&gt;
Le gid (group ID) d&#039;un groupe est son identifiant numérique. Il est unique à chaque groupe et est généralement supérieur à 1000.&amp;lt;br /&amp;gt;&lt;br /&gt;
Pour récupérer l&#039;uid, le gid et les groupes d&#039;un utilisateur, vous pouvez utiliser la commande &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ id&lt;br /&gt;
uid=1000(pfoo) gid=1000(pfoo) groupes=1000(pfoo)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Le gid correspond au groupe principal de l&#039;utilisateur. Tous les autres groupes listés après sont dits secondaires.&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l&#039;utilisateur pfoo dans le groupe audio, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
usermod -G -a audio pfoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour changer le groupe principal de l&#039;utilisateur pfoo, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
usermod -g legroupe pfoo&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Les liens==&lt;br /&gt;
Sous linux chaque fichier est repéré physiquement sur le disque par un inode (c&#039;est en quelque sorte le vrai nom des données sur le disque). Le nom de fichier (filename) est ce qu&#039;on appel une étiquette et pointe sur l&#039;inode.&lt;br /&gt;
&lt;br /&gt;
===Hard link===&lt;br /&gt;
On créé un hardlink avec la commande &amp;lt;code&amp;gt;ln&amp;lt;/code&amp;gt;. Ils permettent de créer une nouvelle étiquette pointant vers un inode. Une fois un hardlink créé, on peut accéder au fichier aussi bien avec le nom d&#039;origine qu&#039;avec le nom que l&#039;on vient de créer. Si on efface le nom d&#039;origine, le fichier reste accessible par le hardlink.&lt;br /&gt;
Notez que les hardlinks doivent être situé sur le même disque physique.&lt;br /&gt;
&lt;br /&gt;
Pour créer un hardlink :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ln source nouveau_nom&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
source est le nom du fichier pour lequel vous voulez créer un hardlink, et nouveau_nom est le nom du lien&lt;br /&gt;
&lt;br /&gt;
===symbolic link===&lt;br /&gt;
&lt;br /&gt;
Un lien symbolic est une nouvelle étiquette pointant cette fois vers un nom de fichier. Si on efface le fichier d&#039;origine, le lien ne signifie plus rien.&lt;br /&gt;
&lt;br /&gt;
Pour créer un lien symbolique :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ln -s source destination&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
source est le nom du fichier pour lequel vous voulez créer un hardlink, et destination est le nom du lien&lt;br /&gt;
&lt;br /&gt;
==Ajouter et supprimer des utilisateurs==&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un groupe il faut utiliser la commande groupadd :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
groupadd -g GID GROUPE&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
GID est le numéro du groupe. GROUPE est le nom du groupe.&lt;br /&gt;
&lt;br /&gt;
Pour ajouter un utilisateur il faut utiliser la commande useradd :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
useradd -g GID -u UID LOGIN -d home_dir -m&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
GID est le numéro du groupe principal de l&#039;utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
UID est le numéro de l&#039;utilisateur. LOGIN est le login de l&#039;utilisateur.&amp;lt;br /&amp;gt;&lt;br /&gt;
home_dir est le répertoire de l&#039;utilisateur. Généralement /home/LOGIN.&amp;lt;br /&amp;gt;&lt;br /&gt;
L&#039;option -m précise qu&#039;il faut créer le répertoire personnel de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
==Le patch kernel grsecurity et la restriction des droits de /proc==&lt;br /&gt;
&lt;br /&gt;
Le patch grsecurity pour le noyau linux permet d&#039;augmenter la sécurité de votre machine. Cependant, la restriction des droits qu&#039;il peut imposer sur certains répertoires peut être quelque-peut gênante, notamment pour les services utilisant l&#039;ipv6. Si le kernel est bien configuré il a attribué les répertoires dont il a durcit les privilèges à un groupe (défini par la directive de configuration CONFIG_GRKERNSEC_PROC_GID). Si certains services posent des problèmes au lancement (c&#039;est le cas par exemple pour postfix ou bind9 lorsqu&#039;on les configure pour gérer l&#039;ipv6) ajoutez les simplement au groupe des sous-répertoires de /proc/.&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez snmpd, il faut modifier la ligne de lancement dans &amp;lt;code&amp;gt;/etc/default/snmpd&amp;lt;/code&amp;gt; en ajoutant l&#039;option &amp;lt;code&amp;gt;-g GID&amp;lt;/code&amp;gt; où GID est le groupe défini par CONFIG_GRKERNSEC_PROC_GID.&lt;br /&gt;
&lt;br /&gt;
==Le programme tar==&lt;br /&gt;
&lt;br /&gt;
=Généralités sur debian=&lt;br /&gt;
&lt;br /&gt;
==Le lancement automatique au boot==&lt;br /&gt;
&lt;br /&gt;
Quand vous installez des serveurs sous debian, un fichier permettant de le lancer, de l&#039;arrêter, et plus rarement de reloader sa configuration est créé dans /etc/init.d/&lt;br /&gt;
Lorsque vous lancez votre serveur, certains services devront être lancé automatiquement. Ce lancement est effectué grâce à des fichiers situés dans /etc/rc?.d/ Le point d&#039;interrogation (?) représente un chiffre contenu entre 0 et 6. Ce chiffre représente l&#039;init. L&#039;init par défaut qui est exécuté au boot est défini dans le fichier /etc/inittab&lt;br /&gt;
Chez moi par exemple, j&#039;ai la ligne suivante dans mon /etc/inittab :&lt;br /&gt;
&amp;lt;pre&amp;gt;id:2:initdefault:&amp;lt;/pre&amp;gt;&lt;br /&gt;
Celà signifie que lorsque je démarre mon serveur, il passe directement en &amp;lt;code&amp;gt;init 2&amp;lt;/code&amp;gt;. C&#039;est donc les fichiers situés dans /etc/rc2.d/ qui seront utilisés pour lancer les services.&lt;br /&gt;
&lt;br /&gt;
Il est bon de noter que les fichiers situés dans &amp;lt;code&amp;gt;/etc/rc2.d/&amp;lt;/code&amp;gt; sont en fait des liens virtuels pointant vers le lanceur situé dans &amp;lt;code&amp;gt;/etc/init.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
Si on supprime l&#039;un de ces lignes virtuels, le service en question ne sera plus lancé automatiquement.&lt;br /&gt;
Si on ajoute un lien, le service correspondant sera alors automatiquement lancé au boot.&lt;br /&gt;
&lt;br /&gt;
Vous avez peut-être remarqué que les liens ne sont pas nommé uniquement par le nom du service qu&#039;ils lancent, mais qu&#039;ils sont préfixés d&#039;une lettre et de deux chiffres.&lt;br /&gt;
Un lien commençant par un S sera lancé, alors qu&#039;un lien commençant par un K sera stoppé (K comme Kill)&lt;br /&gt;
Le nombre suivant la lettre S ou K définit la priorité de lancement ou d&#039;arrêt.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer l&#039;init actuel avec la commande telinit suivit du numéro de l&#039;init voulu.&lt;br /&gt;
L&#039;init 0 correspont a l&#039;arrêt du serveur. L&#039;init 6 correspond au reboot. L&#039;init 1 est généralement utilisé pour un système single-user, et les init 2 à 5 pour un système multi-user.&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, voici comment créer un lien virtuel pour ajouter un service au lancement automatique :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ln -s /etc/init.d/exemple /etc/rc2.d/S20exemple&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez tout de même que beaucoup de serveurs (apache, proftpd, ...) proposent dans leur fichier &amp;lt;code&amp;gt;/etc/default/&amp;lt;/code&amp;gt; de définir s&#039;ils doivent se lancer ou non au boot. Cela permet de ne pas toucher aux fichiers de /etc/rc?.d/&lt;br /&gt;
&lt;br /&gt;
=Généralités sur ce howto=&lt;br /&gt;
&lt;br /&gt;
Je vais commencer par décrire l&#039;arborescence que la suite du howto utilise.&lt;br /&gt;
Le dossier &amp;lt;code&amp;gt;/srv/&amp;lt;/code&amp;gt; va contenir tous les dossiers et fichiers en rapport directement avec le serveur. Sur mon installation, j&#039;ai créé une partition à part pour &amp;lt;code&amp;gt;/srv/&amp;lt;/code&amp;gt; ce qui permet de ne pas perdre les données lors d&#039;une réinstallation.&lt;br /&gt;
&amp;lt;code&amp;gt;/srv/bind/&amp;lt;/code&amp;gt; contient les différentes zones dns que mon serveur bind9 gère.&lt;br /&gt;
&amp;lt;code&amp;gt;/srv/http/&amp;lt;/code&amp;gt; contient les différents sites internet que mon serveur héberge du moment qu&#039;ils ne sont pas rattaché à un utilisateur en particulier. Les sites internet rattachés à un utilisateur doivent être dans le dossier home de l&#039;utilisateur en question.&lt;br /&gt;
&lt;br /&gt;
Notez que pour la suite de ce howto, tous les changements de permissions effectués supposent que vous êtes en umask 0027.&lt;br /&gt;
Vous pouvez voir votre umask actuel avec la commande umask. Si votre umask n&#039;est pas 0027, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;umask 0027&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Créez le répertoire /srv s&#039;il n&#039;existe pas :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /srv&lt;br /&gt;
chmod o+rx /srv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Généralités sur l&#039;installation d&#039;un serveur dédié sous debian=&lt;br /&gt;
&lt;br /&gt;
==Configurer les locales==&lt;br /&gt;
&lt;br /&gt;
Les paramètres régionaux (locales en anglais) sont un ensemble de définitions de textes et de formats des fichiers.&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
&lt;br /&gt;
Pour modifier la locale sous Debian, tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg-reconfigure locales&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Au premier menu, cochez les locales suivantes avec la touche espace :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fr_FR ISO-8859-1&lt;br /&gt;
fr_FR.UTF-8 UTF-8&lt;br /&gt;
fr_FR.UTF-8@euro UTF-8&lt;br /&gt;
fr_FR@euro ISO-8859-15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Au menu suivant, définissez &amp;lt;code&amp;gt;fr_FR.UTF-8&amp;lt;/code&amp;gt; comme locale active par défaut.&lt;br /&gt;
&lt;br /&gt;
A titre d&#039;information, les locales actives sont listées dans &amp;lt;code&amp;gt;/etc/locale.gen&amp;lt;/code&amp;gt;. Vous pouvez modifier manuellement les locales actives en les ajoutant dans ce fichier puis en utilisant la commande &amp;lt;code&amp;gt;locale-gen&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si vous avez des fichiers écrits avec une locale différente, vous pouvez rectifier vos fichiers avec &amp;lt;code&amp;gt;iconv&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===ArchLinux===&lt;br /&gt;
&lt;br /&gt;
Pour modifier la locale sous ArchLinux, il y a 3 étapes distinctes :&lt;br /&gt;
* Indiquer quelles locales peuvent être utilisées en modifiant le fichier &amp;lt;code&amp;gt;/etc/locale.gen&amp;lt;/code&amp;gt; : il faut les décommenter en retirant le #&lt;br /&gt;
* Re-générer les locales en tapant en root la commande &amp;lt;code&amp;gt;locale-gen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Préciser laquelle utiliser dans le fichier &amp;lt;code&amp;gt;rc.conf&amp;lt;/code&amp;gt; à la variable &amp;lt;code&amp;gt;LOCALE&amp;lt;/code&amp;gt; quasiment tout en haut du fichier. Exemple : &amp;lt;code&amp;gt;LOCALE=&amp;quot;fr_FR.utf8&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurer l&#039;hostname du serveur==&lt;br /&gt;
&lt;br /&gt;
Généralement, l&#039;hostname de votre serveur correspond au nom de la machine chez la société chez qui vous louez le serveur. C&#039;est ce même nom qui est affiché dans la ligne de votre shell lorsque vous vous loguez en ssh. Si vous possédez votre domaine, vous voudrez probablement avoir votre propre hostname. Dans mon cas, mon serveur s&#039;appelle core.csnu.org.&lt;br /&gt;
&lt;br /&gt;
Le premier fichier à modifier est &amp;lt;code&amp;gt;/etc/hostname&amp;lt;/code&amp;gt;. Ce fichier défini notamment le nom affiché dans le shell. Tapez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo core.csnu.org &amp;gt; /etc/hostname&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il faut aussi modifier le fichier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; et modifier la correspondance entre l&#039;ip de la machine et l&#039;hostname. Dans mon cas :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
213.186.47.110  core.csnu.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configurer une adresse ipv6==&lt;br /&gt;
&lt;br /&gt;
Si la société chez qui vous louez votre serveur vous a alloué un bloc ipv6 vous voudrez peut-être configurer des adresses ipv6 sur votre serveur. Dans mon cas, le bloc ipv6 est 2001:41D0:1:127d::/64.&lt;br /&gt;
Pour ajouter l&#039;adresse ipv6 2001:41d0:1:127d::1 à l&#039;interface eth0 de votre serveur, tapez:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig eth0 inet6 add 2001:41d0:1:127d::1/64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour supprimer cette adresse ipv6 :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig eth0 inet6 del  2001:41d0:1:127d::1/64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour que l&#039;adresse ipv6 soit configurée automatiquement au boot il faut ajouter les lignes suivantes dans &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
iface eth0 inet6 static&lt;br /&gt;
       address 2001:41d0:1:127d::1&lt;br /&gt;
       netmask 64&lt;br /&gt;
       #mtu 1280&lt;br /&gt;
       up echo 0 &amp;gt; /proc/sys/net/ipv6/conf/all/autoconf&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, il faut modifier &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
::1 localhost.localdomain localhost&lt;br /&gt;
2001:41d0:1:127d::1 core.csnu.org&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Automatiser la création du motd==&lt;br /&gt;
&lt;br /&gt;
Le fichier &amp;lt;code&amp;gt;/etc/motd&amp;lt;/code&amp;gt; contient le message qui doit être affiché lorsque quelqu&#039;un se log en ssh. Vous pouvez y entrer par exemple un message que vous voulez passer aux utilisateurs du serveur.&lt;br /&gt;
&lt;br /&gt;
Si vous voulez bénéficier d&#039;un motd graphique, installez le paquet &amp;lt;code&amp;gt;linuxlogo&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install linuxlogo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez créer un logo en dirigeant la sorti de la commande &amp;lt;code&amp;gt;linux_logo&amp;lt;/code&amp;gt; vers &amp;lt;code&amp;gt;/etc/motd&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux_logo &amp;gt; /etc/motd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Si vous voulez automatiser la création d&#039;un motd dynamique qui se modifiera par exemple à chaque changement de kernel il faut créer un script sh qui sera lancé à chaque démarrage. Personnellement, je me sers du fichier &amp;lt;code&amp;gt;/etc/rc.local&amp;lt;/code&amp;gt;.&lt;br /&gt;
Voici mon fichier &amp;lt;code&amp;gt;/etc/rc.local&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
linux_logo &amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;Debian GNU/Linux 4.0&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
uname -a &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;server    : `hostname | cut -f 1 -d &amp;quot;.&amp;quot;`&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;ip        : `cat /etc/network/interfaces | grep &amp;quot;address&amp;quot; | head -n 1 | cut -f 2 -d &amp;quot; &amp;quot;`&amp;quot;  &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;ip6	: `tac /etc/network/interfaces | grep &amp;quot;address&amp;quot; |  head -n 1 | cut -f 2 -d &amp;quot; &amp;quot;`&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;quot;hostname  : `hostname`&amp;quot; &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
echo &amp;gt;&amp;gt; /etc/motd&lt;br /&gt;
/bin/cp /etc/motd /etc/issue&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Des mails temporaires avec exim4==&lt;br /&gt;
&lt;br /&gt;
Vous aurez peut-être temporairement besoin d&#039;un serveur smtp local pour gérer vos envois de mails (crontab, ...). Pour celà, nous allons rapidement configurer &amp;lt;code&amp;gt;Exim4&amp;lt;/code&amp;gt;.&lt;br /&gt;
Pour commencez, installez &amp;lt;code&amp;gt;mailx&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aptitude install mailx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;mailx&amp;lt;/code&amp;gt; permet d&#039;envoyer et de recevoir des mails (c&#039;est un MUA, ou Mail User Agent). Les dépendances de mailx sous debian vont installer un serveur smtp. Sous debian, c&#039;est exim4 qui va est installé par défaut.&lt;br /&gt;
&lt;br /&gt;
Vous serrez amené à répondre à plusieurs questions pour la configuration d&#039;exim4. Rien de bien compliqué.&lt;br /&gt;
Pour une raison obscure, lors de l&#039;installation, je ne pouvais pas modifier le nom du serveur (mailname). Si vous êtes dans le même cas de figure, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/mailname&amp;lt;/code&amp;gt; et d&#039;y entrer votre domaine. Une fois cela fait, il ne reste plus qu&#039;à relancer la configuration d&#039;exim:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg-reconfigure exim4-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Remeh</name></author>
	</entry>
</feed>