aboutsummaryrefslogtreecommitdiff
path: root/content/Informatique
diff options
context:
space:
mode:
Diffstat (limited to 'content/Informatique')
-rwxr-xr-xcontent/Informatique/awesome.rst23
-rwxr-xr-xcontent/Informatique/backup.rst30
-rwxr-xr-xcontent/Informatique/chiffrage.rst20
-rwxr-xr-xcontent/Informatique/chroot.rst107
-rwxr-xr-xcontent/Informatique/elinks.rst6
-rwxr-xr-xcontent/Informatique/fail2ban.rst22
-rwxr-xr-xcontent/Informatique/invisible.rst20
-rwxr-xr-xcontent/Informatique/rst.rst6
-rwxr-xr-xcontent/Informatique/sftp.rst8
-rwxr-xr-xcontent/Informatique/vala.rst121
10 files changed, 177 insertions, 186 deletions
diff --git a/content/Informatique/awesome.rst b/content/Informatique/awesome.rst
index 0e9e6e9..0895c9e 100755
--- a/content/Informatique/awesome.rst
+++ b/content/Informatique/awesome.rst
@@ -7,19 +7,19 @@ Un menu pour awesome
:date: 2010-06-06
:tags: Libre
-Awesome est un window manager (wm) en mode pavement ( les fenêtres se
-disposent de manière à ne jamais se chevaucher ). Cela permet de ne pas
+Awesome est un window manager (wm) en mode pavement (les fenêtres se
+disposent de manière à ne jamais se chevaucher). Cela permet de ne pas
avoir à se soucier de la manière dont il faut gérer l'affichage des
applications.
|Awesome|
-Une des particularité est que sa configuration se fait par un fichier de
+Une des particularités est que sa configuration se fait par un fichier de
script exécuté au lancement du bureau. Cela permet de paramétrer comme
on le souhaite le bureau sans être limité par le WM. La contrepartie est
que cela est plus difficile à prendre en main, et une erreur de code
entraîne un écran gris au lieu du bureau que l'on souhaite obtenir... Le
-langage utilisé ( Lua ) est un langage connu pour sa légèreté. Pour
+langage utilisé (Lua) est un langage connu pour sa légèreté. Pour
l'instant, le projet étant encore assez jeune, il n'existe pas encore
beaucoup de modules standardisés pour configurer le système, mais je
pense que ceux-ci ne tarderont pas à venir...
@@ -32,22 +32,21 @@ et que ces soucis finiront par disparaître avec le temps et les versions
suivantes
La plupart des actions peuvent être associées à un raccourci clavier, et
-si il est possible d'affiche une barre d'outil à chaque applications («
+s'il est possible d'affiche une barre d'outil à chaque application («
titlebar »), on prend vite l'habitude de s'en passer et de tout
contrôler au clavier. On est d'autant plus aidé par cela par
`shifty <http://awesome.naquadah.org/wiki/Shifty>`_ une extension qui
permet de « programmer » la manière dont on veut que les fenêtres
s'affichent : sur quel écran, avec quels paramètres etc. Cela permet par
exemple d'avoir une configuration pour des applications utilisant
-plusieurs fenêtres ( je pense par exemple à Gimp ) paramétrée comme on
+plusieurs fenêtres (je pense par exemple à Gimp) paramétrée comme on
le souhaite…
-On prend vite l'habitude également d'utiliser plusieurs « tags » (
-l'équivalent de bureaux virtuels mais un peu plus étendus ) : ceux-ci
-peuvent être paramétrés pour afficher des applications sépicifiques (
-j'ai par exemple adapté ma configuration pour que *web* affiche firefox,
-ou que *news* affiche le couple elinks/newsbeuter pour lire mes flux
-RSS…
+On prend vite l'habitude également d'utiliser plusieurs « tags » (l'équivalent
+de bureaux virtuels mais un peu plus étendus) : ceux-ci peuvent être paramétrés
+pour afficher des applications sépicifiques (j'ai par exemple adapté ma
+configuration pour que *web* affiche firefox, ou que *news* affiche le couple
+elinks/newsbeuter pour lire mes flux RSS…
Bien sûr le temps de paramétrage au début est un peu long, mais
maintenant que l'API est stable, il n'est plus nécessaire de tout
diff --git a/content/Informatique/backup.rst b/content/Informatique/backup.rst
index 8b6fc90..2e71f9e 100755
--- a/content/Informatique/backup.rst
+++ b/content/Informatique/backup.rst
@@ -8,18 +8,18 @@ Un système de backup automatique
:tags: Libre
On le sait tous, il faut faire des sauvegardes de manière régulière. On
-le sais également, pour que celles-ci se fasse sur le long terme, il
+le sais également, pour que celles-ci se fassent sur le long terme, il
faut que celles-ci se fassent de manière automatique, et sur un autre
support que le PC que l'on souhaite sauvegarder. Le problème qui se pose
est le suivant : comment concilier ces deux conditions sur un PC de
-bureau ( ne disposant donc pas d'une série de serveur allumés en
-permanences et prêt à recevoir nos sauvegardes en continue… ) ?
+bureau (ne disposant donc pas d'une série de serveur allumés en
+permanences et prêt à recevoir nos sauvegardes en continu…) ?
Pour répondre à tout cela, nous allons mettre en place un système de backup sur
disque dur externe, qui se lancera à chaque fois que notre disque sera monté. À
chaque fois que le disque dur sera allumé, la sauvegarde s'enclenchera. Cela ne
-garantie pas, bien sûr que les sauvegardes se feront à un intervalle régulier,
-mais cela garantie au moins que nous n'aurons pas à nous en soucier. Pour cela
+garantit pas, bien sûr que les sauvegardes se feront à un intervalle régulier,
+mais cela garantit au moins que nous n'aurons pas à nous en soucier. Pour cela
nous allons utiliser les outils qui sont disponibles sous un environnement
Linux : rsync et hal. Cet article nous présente une base pour faire notre
sauvegarde `Une sauvegarde améliorée avec rsync
@@ -37,16 +37,16 @@ Comme son nom l'indique, halevt est un gestionnaire d'évènements pour hal. Hal
est un gestionnaire d'évènement matériel sous Linux; il envoie des informations
à chaque fois que des informations sont envoyées depuis les composants. Cela
permet de détecter le branchement d'un périphérique USB et de le monter sur le
-bureau ( et qui nous simplifie grandement la vie aujourd'hui !!!). Halevt est
+bureau (et qui nous simplifie grandement la vie aujourd'hui !!!). Halevt est
un démon à l'écoute des informations qui nous sont envoyées par hal, et
d'activer des actions en conséquence : par exemple pour lancer l'antivirus sur
la clef usb, reconfigurer le mappage du clavier en fonction de la marque que
l'on branche etc. Pour notre part, nous allons nous contenter de lancer un
-script (celui du backup mentionné plus haut ).
+script (celui du backup mentionné plus haut).
Pour commencer nous allons devoir identifier le lecteur à mettre sous
-surveillance : inutile de se baser sur les noms de montage habituels ( /dev/sda
-par exemple ) en effet en fonction des périphériques déjà branchés nous
+surveillance : inutile de se baser sur les noms de montage habituels (/dev/sda
+par exemple) en effet en fonction des périphériques déjà branchés nous
n'allons pas obtenir la même configuration. Nous allons utiliser les point de
montage défini dans /dev/disk/by-uuid qui permet d'obtenir l'identifiant
de notre disque (et qui sera repris par la suite dans la configuration de hal
@@ -63,15 +63,15 @@ en place une entrée pour notre évènement dans la configuration de halevt :
Cela si halevt est exécuté avec les droits de l'utilisateur lançant le
backup. Si on le fait tourner en démon, il faut trouver une autre
-solution ( sur mon poste j'ai utilisé sudo, mais on peut très bien se
-baser sur le sticky bit pour donner les droits au script ). De même,
+solution (sur mon poste j'ai utilisé sudo, mais on peut très bien se
+baser sur le sticky bit pour donner les droits au script). De même,
dans la configuration mise en place, le script se trouve sur le disque
-de stockage ( de manière à pouvoir le lancer à la main si le démon n'est
-pas disponible ), cela peut être adapté en fonction de chacun…
+de stockage (de manière à pouvoir le lancer à la main si le démon n'est
+pas disponible), cela peut être adapté en fonction de chacun…
Dans le cas d'une configuration multi-utilisateur, je pense qu'il est
nécessaire de passer par un script qui lance les différentes sauvegardes sous
-le bon groupe de l'utilisateur à chaque fois. ( Ce qui en plus permet d'éviter
-le problème du sudo ) mais je n'ai pas eu besoin d'aller jusque là pour
+le bon groupe de l'utilisateur à chaque fois. (Ce qui en plus permet d'éviter
+le problème du sudo) mais je n'ai pas eu besoin d'aller jusque-là pour
l'instant ! À vous d'adapter ce que je vous propose en fonction de votre
configuration !
diff --git a/content/Informatique/chiffrage.rst b/content/Informatique/chiffrage.rst
index 1ceef6b..e3af66d 100755
--- a/content/Informatique/chiffrage.rst
+++ b/content/Informatique/chiffrage.rst
@@ -7,10 +7,10 @@ Mettre en place une solution de chiffrage avec authentification forte
:date: 2008/11/07
:tags: Libre
-Voici une méthode que j'ai mis en place pour protéger l'accès à mon
-répertoire /home via Cryptsetup. Il existes de nombreux tutoriels
+Voici une méthode que j'ai mise en place pour protéger l'accès à mon
+répertoire /home via Cryptsetup. Il existe de nombreux tutoriels
expliquant comment créer une partition chiffrée, je ne vais pas
-détailler cela ici. L'intérêt du script que je propose ici est qi'il se
+détailler cela ici. L'intérêt du script que je propose ici est qu'il se
lance au moment du login, et qu'il va chercher le mot de passe sur une
clef USB.
@@ -57,18 +57,18 @@ périphérique USB.
Mettre le script au login de l'utilisateur
------------------------------------------
-Maintenant, 2ème étape, il s'agit de lancer ce script au moment où
+Maintenant, 2e étape, il s'agit de lancer ce script au moment où
l'utilisateur vient de se logguer. Comme je passe par un login manager
-sur mon portable ( GDM ), j'ai choisi d'utiliser ses ressources pour
+sur mon portable (GDM), j'ai choisi d'utiliser ses ressources pour
lancer le script. En effet, GDM possède des scripts qui sont lancés aux
différents moments de la connexion. Ce qui nous intéresse ici se trouve
dans le fichier : /etc/gdm/PostLogin/Default
-Il suffit d'y coller notre script ( ou d'y faire appel ) , et notre partition
-sera activée automatiquement lors de la connexion ( et seulement si le mot de
-passe est valide ).
+Il suffit d'y coller notre script (ou d'y faire appel), et notre partition
+sera activée automatiquement lors de la connexion (et seulement si le mot de
+passe est valide).
On peut obtenir des paramètres de la part de GDM dans ce script, nom de
l'utilisateur qui se loggue, répertoire de login etc, cela permet de
-personnaliser notre script si on le souhaite.. Un code de retour en erreur
-refusera le login, que le mot de passe entré soit bon ou non...
+personnaliser notre script si on le souhaite. Un code de retour en erreur
+refusera le login, que le mot de passe entré soit bon ou non…
diff --git a/content/Informatique/chroot.rst b/content/Informatique/chroot.rst
index ce5a733..f394fd2 100755
--- a/content/Informatique/chroot.rst
+++ b/content/Informatique/chroot.rst
@@ -15,19 +15,18 @@ La demande
~~~~~~~~~~
Ma copine m'a demandé de trouver une solution simple pour échanger des
-fichier avec sa sœur, msn posant des problèmes… J'ai pensé à mon serveur
-ssh et mettre en place une connexion sftp pour ça. Sur le principe cela
-a été adopté avec une petite présentation de filezilla (je ne sais pas
-s'il existe des clients sftp intégrés sous windows ?), j'ai donc
-commencé à mettre en place le système. De mon côté, la condition
-principale est de n'autoriser les connexions que par clef publique ( pas
-de mot de passe ), ma copine a tenu à ce que sa sœur ne puisse pas
-accéder aux documents présents dans son home, et du mien à ce que l'on
-ne puisse pas pour autant se promener dans l'arborescence du serveur :
-il va donc falloir chrooter l'environnement. Il existe pas mal de
-documentation la dessus sur internet, mais je me suis souvent retrouvé
-face à des exemples incorrects ou incompatible avec le fait de passer
-par une clef publique, je vais donc détailler les problèmes rencontrés.
+fichiers avec sa sœur, msn posant des problèmes… J'ai pensé à mon serveur ssh
+et mettre en place une connexion sftp pour ça. Sur le principe cela a été
+adopté avec une petite présentation de filezilla (je ne sais pas s'il existe
+des clients sftp intégrés sous windows ?), j'ai donc commencé à mettre en place
+le système. De mon côté, la condition principale est de n'autoriser les
+connexions que par clef publique (pas de mot de passe), ma copine a tenu à ce
+que sa sœur ne puisse pas accéder aux documents présents dans son home, et du
+mien à ce que l'on ne puisse pas pour autant se promener dans l'arborescence du
+serveur : il va donc falloir chrooter l'environnement. Il existe pas mal de
+documentation la dessus sur internet, mais je me suis souvent retrouvé face à
+des exemples incorrects ou incompatible avec le fait de passer par une clef
+publique, je vais donc détailler les problèmes rencontrés.
Le compte + clef publique
~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -41,30 +40,30 @@ La première étape est de créer le compte, cela se fait assez simplement
|Création de la clef ssh avec puttygen| et en répondant aux questions
par défaut… Vient ensuite la clef publique : filezilla gère les clefs
-privés au format ppk ( putty ) et je n'ai pas trouvé d'outil pour les
+privés au format ppk (putty) et je n'ai pas trouvé d'outil pour les
générer sous windows. Je suis donc passé par wine + puttygen pour créer
la clef. Une fois celle-ci crée, on enregistre la partie publique et la
partie privée de la clef. La clef publique va être enregistrée dans le
fichier ${user}/.ssh/know\_host sur le serveur pour autoriser le client
à s'y connecter. La clef privée sera enregistrée de son côté au format
ppk pour être utilisée par filezilla (il est possible à partir de ce
-fichier de générer une clef privée de type openssh ).
+fichier de générer une clef privée de type openssh).
|image1|
Il faut ensuite intégrer la clef privée dans filezilla en passant par
-les paramètres : elle sera automatiquement lue à la connexion ( il faut
-choisir «interactive» dans le type d'authentification ). ( Attention :
+les paramètres : elle sera automatiquement lue à la connexion (il faut
+choisir «interactive» dans le type d'authentification). (Attention :
sous windows j'ai rencontré des problèmes avec un répertoire contenant
des accents, la clef semblait être lue, mais la connexion ne se faisait
-pas pour autant. )
+pas pour autant.)
Chrooter l'environnement
~~~~~~~~~~~~~~~~~~~~~~~~
Aujourd'hui il est possible de chrooter nativement un environnement sftp
avec openssh. Il faut pour cela mettre en place une condition sur
-l'utilisateur ( ou le groupe ) pour faire le chroot :
+l'utilisateur (ou le groupe) pour faire le chroot :
::
@@ -84,13 +83,13 @@ connexion par clef. En effet, lorsque l'utilisateur va se connecter, ssh
va lire dans son répertoire personnel pour lire le fichier
.ssh/know\_host et autoriser ou non la clef qui se présente. Ce qui
signifie que si l'on modifie le répertoire personnel, il faut aussi
-déplacer cette arborescence ( hors de question dans ce cas de mettre /
-comme racine de l'utilisateur ). À noter : j'ai préféré faire le match
-sur le nom de l'utilisateur plutôt que sur son groupe ( le groupe sera
-utilisé par ailleurs ). Dans le cas où nous avons plusieurs
-utilisateurs, il est possible de les mettre à la suite ( séparés par des
-virgules ). J'ai vu de nombreux tutoriaux qui indiquent comme répertoire
-de chroot « /home/%u » ( le répertoire de l'utilisateur standard ), et
+déplacer cette arborescence (hors de question dans ce cas de mettre /
+comme racine de l'utilisateur). À noter : j'ai préféré faire le match
+sur le nom de l'utilisateur plutôt que sur son groupe (le groupe sera
+utilisé par ailleurs). Dans le cas où nous avons plusieurs
+utilisateurs, il est possible de les mettre à la suite (séparés par des
+virgules). J'ai vu de nombreux tutoriaux qui indiquent comme répertoire
+de chroot « /home/%u » (le répertoire de l'utilisateur standard), et
qui demandent de changer le répertoire de login de l'utilisateur par « /
». Je pense que c'est une très mauvaise idée : d'une part parce que cela
oblige à déposer les clefs à la racine du serveur, mais aussi à cause de
@@ -98,9 +97,9 @@ la contrainte d'openssh demandant à ce que le répertoire root soit
détenu par root : cela veut dire que l'utilisateur n'a pas le droit de
déposer de fichiers ou de créer de répertoires dans son propre home ! Le
plus simple est donc de prendre un autre répertoire pour l'échange, et
-laisser le home de l'utilisateur pour la configuration. ( Cela permet
+laisser le home de l'utilisateur pour la configuration. (Cela permet
aussi d'être sûr que le répertoire .ssh ne sera pas effacé par erreur
-par l'utilisateur… ) J'ai donc mis un lien symbolique pour lier le /home
+par l'utilisateur…) J'ai donc mis un lien symbolique pour lier le /home
de l'utilisateur avec son répertoire d'échange :
::
@@ -109,8 +108,8 @@ de l'utilisateur avec son répertoire d'échange :
# ln -s /var/chroot/home/${user} /home/${user}/echanges
On retrouvera ainsi la possibilité de voir les fichiers déposés en
-passant par le /home de l'utilisateur ( même si ce dernier ne pourra pas
-y aller… )
+passant par le /home de l'utilisateur (même si ce dernier ne pourra pas
+y aller…)
Isoler l'environnement
~~~~~~~~~~~~~~~~~~~~~~
@@ -118,7 +117,7 @@ Isoler l'environnement
Maintenant que nous avons empêché l'utilisateur de se balader sur
l'ordinateur, nous allons l'empêcher de se balader dans les autres
répertoires des utilisateurs : cela se fait en une ligne de commande
-(pour chacun des répertoires que nous allons ouvrir en sftp : )
+(pour chacun des répertoires que nous allons ouvrir en sftp :)
::
@@ -131,12 +130,12 @@ Autoriser le partage
~~~~~~~~~~~~~~~~~~~~
Maintenant que nous avons fermé les droits de manière générale il nous
-reste à autoriser le partage des fichiers ( après tout c'était le but de
+reste à autoriser le partage des fichiers (après tout c'était le but de
la demande !) de manière plus fine. Cela implique pour moi deux choses :
#. permettre à un autre utilisateur d'accéder aux données présentes
-#. permettre à un autre utilisateur de déposer ( ou de supprimer des
- donnée )
+#. permettre à un autre utilisateur de déposer (ou de supprimer des
+ données)
Pour le premier point, c'est facile il suffit d'ajouter l'utilisateur A
au groupe de l'utilisateur B :
@@ -146,12 +145,12 @@ au groupe de l'utilisateur B :
# usermod -a -G ${user} ${un_autre_utilisateur}
Et l'utilsateur un\_autre\_utilisateur pourra donc accéder à l'ensemble
-des fichier pour les lire ( et éventuellement les rapatrier chez lui).
-Pour le second point ( possibilité d'écrire et modifier ) c'est un peu
+des fichiers pour les lire (et éventuellement les rapatrier chez lui).
+Pour le second point (possibilité d'écrire et modifier) c'est un peu
plus compliqué; en gros nous voulons que les fichiers déposés par sftp
dans le répertoire de l'utilisateur ait comme groupe d'appartenance
-celui du propriétaire du répertoire ( quel que soit l'utilisateur qui
-dépose ) et qu'ils soient modifiable par le groupe ( g+w ) du
+celui du propriétaire du répertoire (quel que soit l'utilisateur qui
+dépose) et qu'ils soient modifiable par le groupe (g+w) du
propriétaire. Par exemple : l'utilisateur A dépose un fichier dans le
répertoire d'échange de l'utilisateur B. Il faut que les droits de ce
fichier se présentent ainsi une fois le transfert terminé :
@@ -161,11 +160,11 @@ fichier se présentent ainsi une fois le transfert terminé :
$ ls -l fichier
-rw-rw---- 1 utilisateurA utilisateurB
-( ainsi l'un et l'autre pourront supprimer le fichier ). Pour cela nous
+(ainsi l'un et l'autre pourront supprimer le fichier). Pour cela nous
allons utiliser une « bidouille » de l'os : le sgid bit. Derrière ce nom
barbare se trouve un marqueur qui permet de fixer le droit de tous les
-fichiers qui seront créés dans le répertoire ( plus d'info
-`ici <http://en.wikipedia.org/wiki/Setuid>`_ ). Pour le déterminer on
+fichiers qui seront créés dans le répertoire (plus d'info
+`ici <http://en.wikipedia.org/wiki/Setuid>`_). Pour le déterminer on
passe par chmod :
::
@@ -175,20 +174,20 @@ passe par chmod :
Cela détermine bien quel est le groupe qui sera propriétaire du fichier,
mais cela ne donne pas à ce groupe le droit de le modifier pour autant !
Sous linux, c'est la commande umask qui permet de déterminer les droits
-des fichiers. Le problème est qu'il s'agit d'une commande lié à
+des fichiers. Le problème est qu'il s'agit d'une commande liés à
l'environnement de l'utilisateur, et non pas aux répertoires sur
-lesquels nous travaillons ( à moins de passer par les ACLs mais cela est
-déjà assez compliqué comme ça… ). Ici, nous sommes dans un environnement
+lesquels nous travaillons (à moins de passer par les ACLs mais cela est
+déjà assez compliqué comme ça…). Ici, nous sommes dans un environnement
sftp, sans shell de login, donc sans possibilité d'exécuter la commande
directement, il faut que ce soit le serveur sftp qui le configure. J'ai
-trouvé énormément de documentations ( la plupart des bidouillages ) pour
+trouvé énormément de documentations (la plupart des bidouillages) pour
contourner le problème, mais la solution la plus simple vient de la
-dernière version d'OpenSSH (5.4 ) sortie le 8 mars dernier.
+dernière version d'OpenSSH (5.4) sortie le 8 mars dernier.
|image2|
Une nouvelle option sur le serveur sftp permet d'indiquer quel est
-l'umask qui sera appliqué ( dans notre cas 002) : dans le
+l'umask qui sera appliqué (dans notre cas 002) : dans le
fichier/etc/ssh/sshd\_config nous allons configurer les paramètres par
défaut du serveur sftp : Remplacer :
@@ -204,7 +203,7 @@ par :
Pour définir les droits umask qui seront appliqués par défaut pour
toutes les connexions sftp par défaut. Ce paramétrage est à redéfinir
-pour les paramétrages personnalisés ( bloc Match ) :
+pour les paramétrages personnalisés (bloc Match) :
::
@@ -214,15 +213,15 @@ Conclusion
~~~~~~~~~~
Nous avons un environnement bien hermétique, pouvant gérer
-l'augmentation du nombre de compte ( il suffit de refaire les chmod dans
-notre environnement chrooté à la création du compte ), et hermétique. Le
+l'augmentation du nombre de compte (il suffit de refaire les chmod dans
+notre environnement chrooté à la création du compte), et hermétique. Le
paramétrage côté serveur est effectivement assez lourd au début, mais je
pense que la mise à jour ne demande pas trop de travail, et on gère les
-droits de manière assez fine ( en passant par les groupes ce qui me
-semble être dans la mentalité unix ). Pour le client, il n'y a pas grand
-chose à paramétrer ( récupérer la clef et l'intégrer ), et il n'y a
+droits de manière assez fine (en passant par les groupes ce qui me
+semble être dans la mentalité unix). Pour le client, il n'y a pas grand
+chose à paramétrer (récupérer la clef et l'intégrer), et il n'y a
aucun risque que celui-ci vienne casser son paramétrage. On peut même
-sauvegarder sa clef privée dans son home (le vrai ), au cas où il
+sauvegarder sa clef privée dans son home (le vrai), au cas où il
perdrait le fichier.
.. |Création de la clef ssh avec puttygen| image:: |filename|../images/puttygen-300x276.jpg
diff --git a/content/Informatique/elinks.rst b/content/Informatique/elinks.rst
index 6f85114..bac91ba 100755
--- a/content/Informatique/elinks.rst
+++ b/content/Informatique/elinks.rst
@@ -18,13 +18,13 @@ indiquer que je souhaitai entreprendre quelques modifications dans le code dans
le but de le rendre davantage modulaire. Il est nativement scriptable dans
différents langages (lua, python, perl...) mais les possbilités de scripts
restent très limitées et ne permettent pas de changer grand chose au
-comportement du navigateur. Quand on a prit l'habitude de pouvoir configurer
+comportement du navigateur. Quand on a pri l'habitude de pouvoir configurer
ses applications comme on le souhaite, cela devient difficile de ne pas pouvoir
le faire.
J'ai donc choisi de me pencher davantage sur le langage lua pour mettre en
place les modifications voulues. J'ai déjà une expérience du lua comme scripts
-côté client, pour l'instant jamais du côté de l'API C. Après avoir lutté une
+côté client, pour l'instant jamais du côté de l'API C. Après avoir lutté un
petit peu, j'ai fini par comprendre et suis aujourd'hui en train de mettre les
objets qui m'intéressent.
@@ -36,7 +36,7 @@ naviguer dans celle-ci. C'est tout cela que je souhaite mettre en place, en
proposant une API orientée objet qui sera modulable et réutilisable par la
suite.
-Pour l'instant, les modifications ne sont pas encore visibles, je fait le
+Pour l'instant, les modifications ne sont pas encore visibles, je fais le
commit sur mon propre serveur git, mais je rendrai public mon projet dès que
j'aurai obtenu un résultat intéressant : je n'attendrai pas d'avoir fini pour
tout publier; soyez patient !
diff --git a/content/Informatique/fail2ban.rst b/content/Informatique/fail2ban.rst
index 993c704..794797f 100755
--- a/content/Informatique/fail2ban.rst
+++ b/content/Informatique/fail2ban.rst
@@ -42,10 +42,10 @@ erreur 401 dans apache, notre regex se présentera ainsi :
failregex = :80 .* ".*" 403 = :80 .* ".*" 401
(Celle-ci est bien sûr à adapter en fonction de la manière dont vous
-affichez vos logs de connexions. )
+affichez vos logs de connexions.)
-Dans le fichier de configuration de fail2ban ( /etc/fail2ban/jail.conf
-), nous allons demander la lecture de ce fichier en indiquant quelques
+Dans le fichier de configuration de fail2ban (/etc/fail2ban/jail.conf),
+nous allons demander la lecture de ce fichier en indiquant quelques
paramètres supplémentaires :
::
@@ -80,9 +80,9 @@ l'attaquant de continuer ses attaques et se retrouver prêt à refaire une
attaque dès que cette durée est écoulée. De plus, cela peut donner une
information sur la durée pendant laquelle nous filtrons son adresse.
-iptables propose un module, modrecent, permettant de bloquer une IP
+Iptables propose un module, modrecent, permettant de bloquer une IP
pendant une durée déterminée, et de réinitialiser cette durée si jamais
-une nouvelle connexions venait à être réalisée durant cette période.
+une nouvelle connexion venait à être réalisée durant cette période.
Pour ceci nous allons devoir une règle iptables, en dehors de fail2ban,
qui consistera à bloquer une IP pendant telle période :
@@ -108,15 +108,15 @@ Mettre un message d'alerte :
On peut décider d'annoncer à notre utilisateur bloqué que nous avons
banni son IP. Cela peut être utile si nous avons mis en place des règles
de filtrage très strictes et qu'un utilisateur peut se retrouver bloqué
-sans avoir tenté la moindre intrusion ( mieux vaut être trop prudent que
-pas assez )
+sans avoir tenté la moindre intrusion (mieux vaut être trop prudent que
+pas assez)
Pour cela, nous allons avoir besoin d'un service qui consistera à
afficher le texte sur demande. Hors de question de demander ça à apache
ou autre serveur web, nous allons mettre en place notre propre serveur
web, qui présentera une page statique, toujours identique.
-socat et tout désigné pour cela. Dans notre exemple nous allons le
+Socat et tout désigné pour cela. Dans notre exemple nous allons le
faire tourner en tant que serveur, sur un port ouvert, et avec des
droits limités. Notre règle iptables consistera juste à rediriger les
connexions entrantes sur le port 80 vers le port où l'on fait tourner
@@ -151,9 +151,9 @@ Les règles d'unban et de stop se font en symetrique de ban et start, en
supprimant des règles crées.
Voilà, cela permet de mettre en place une sécurité personnalisée et
-adaptée, qui sort déjà des outils et configuration standards ( ce qui
-est toujours une bonne chose en matière de sécurité ). Les exemples que
-j'ai donné ne sont que des suggestions, et il possible de faire beaucoup
+adaptée, qui sort déjà des outils et configuration standards (ce qui
+est toujours une bonne chose en matière de sécurité). Les exemples que
+j'ai donnés ne sont que des suggestions, et il est possible de faire beaucoup
d'autres choses avec un peu d'imaginations. Je vous renvoie au manuel
d'iptables qui présente la liste de tous les modules existants, et de
regarder un peu les paramètres disponibles parmi les fichiers de
diff --git a/content/Informatique/invisible.rst b/content/Informatique/invisible.rst
index f531336..7669dc8 100755
--- a/content/Informatique/invisible.rst
+++ b/content/Informatique/invisible.rst
@@ -19,7 +19,7 @@ La plupart des articles que l'on peut voir sur le net qui concernent
l'utilisation du PC sous Linux restent limités à un point : souvent ils
oublient le fait que plusieurs utilisateurs puissent être enregistrés
sur le PC, et que tous ne soient pas forcément des administrateurs (
-ceux qui peuvent avoir des droits root sur la machine ). Pourquoi donc ?
+ceux qui peuvent avoir des droits root sur la machine). Pourquoi donc ?
Est-ce que cela signifie que la plupart des linuxiens sont les seuls à
utiliser le PC ? C'est possible, mais là n'est pas mon sujet. Je pense
que le problème est que les utilisateurs sont pour l'instant invisible
@@ -40,7 +40,7 @@ Suivre les besoins des utilisateurs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tous les utilisateurs n'utilisent pas forcément l'ordinateur de la même
-manière et il faut prévoir quels sont leurs besoin avant de se lancer
+manière et il faut prévoir quels sont leurs besoins avant de se lancer
dans une opération générale. Par exemple, il n'y a pas longtemps était
paru sur le planet-libre un article sur privoxy qui se terminait par une
manière élégante d'utiliser privoxy sans configuration
@@ -55,8 +55,8 @@ Faire une mise à jour est toujours quelque chose de périlleux, et l'on
ne sait pas forcément comment le système va réagir; entre le logiciel
qui ne fonctionne plus car sa configuration a changé ou celui qui ne
fonctionne plus car un bug a été introduit dans la nouvelle version, les
-risques sont possibles ( je n'ai par exemple pu plus lire de dvd lors de
-la mise à jour du noyau 2.6.30[2]… )
+risques sont possibles (je n'ai par exemple pu plus lire de dvd lors de
+la mise à jour du noyau 2.6.30[2]…)
Je ne veux pas relancer le débat sur le packaging des distributions (
rolling release contre version fixes) mais le problème doit être posé :
@@ -74,8 +74,8 @@ Pouvoir utiliser ses propres applications ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Les distributions n'ont pour l'instant pas de solutions pour gérer
-l'installation de paquets par un utilisateur normal ( qui irait
-s'installer dans /opt// par exemple ), pouvant être installés sans droit
+l'installation de paquets par un utilisateur normal (qui irait
+s'installer dans /opt// par exemple), pouvant être installés sans droit
root, et ne pouvant être exécutés que par l'utilisateur ayant fait son
installation.
@@ -86,11 +86,11 @@ En fait, ce système que l'on nous décrit ouvert ne l'est réellement que
si l'on est admin dessus. Pour les autres, la manipulation se limite à
bash, python… Dans la documentation, on trouve même des exemples
demandant à l'utilisateur d'être root alors qu'une commande équivalente
-peut être lancée par un utilisateur normal ( par exemple $netstat -ie au
-lieu de #ifconfig )
+peut être lancée par un utilisateur normal (par exemple $netstat -ie au
+lieu de #ifconfig)
-Ce problème de l'utilisateur non root est pour l'instant contourné (
-par exemple en configurant sudo dès l'installation ), mais il reste
+Ce problème de l'utilisateur non root est pour l'instant contourné
+(par exemple en configurant sudo dès l'installation), mais il reste
posé, et n'est jamais attaqué de front.
Le fait que cette situation ne soit jamais évoquée est pour moi
diff --git a/content/Informatique/rst.rst b/content/Informatique/rst.rst
index 7555e60..f1e03c9 100755
--- a/content/Informatique/rst.rst
+++ b/content/Informatique/rst.rst
@@ -9,10 +9,10 @@ Blogguer en rst sous wordpress
Le format reStructuredText_ est un langage de balise (un peu comme le HTML, ou
-le laTex ), issu du monde de la programmation. Son but est de répondre au
+le laTex), issu du monde de la programmation. Son but est de répondre au
problème suivant : comment écrire du texte simplement et sans avoir besoin
d'apprendre une syntaxe spécifique (ou du moins un minimum), tout en
-conservant des possibilité de formatage et d'export ?
+conservant des possibilités de formatage et d'export ?
.. _reStructuredText : http://docutils.sourceforge.net/rst.html
@@ -128,7 +128,7 @@ programme python qui s'occupe de ça) :
Ensuite il va falloir modifier le script à lancer. En effet, par défaut, la
commande rst2pdf n'intègre pas la coloration de code. Nous allons donc devoir
modifier la commande à exécuter pour le faire (j'ai mis à disposition le script
-à télécharger_). Assurez vous que le script peut être exécuté par l'utilisateur
+à télécharger_). Assurez-vous que le script peut être exécuté par l'utilisateur
lancé par le service web.
.. _télécharger : http://chimrod.com/downloads/scripts/rst2html-pygments.py
diff --git a/content/Informatique/sftp.rst b/content/Informatique/sftp.rst
index 59edfe5..7d798a1 100755
--- a/content/Informatique/sftp.rst
+++ b/content/Informatique/sftp.rst
@@ -7,12 +7,12 @@ Mettre en place un environnement sftp chrooté (2)
:date: 2011-06-07
:tags: Hébergement
-Il y a quelques temps, j'avais publié un billet indiquant comment mettre en
+Il y a quelque temps, j'avais publié un billet indiquant comment mettre en
place un environnement sftp chrooté, dans lequel l'utilisateur ne peut pas
sortir du répertoire qui lui est assigné.
-La solution que j'avais proposé ( modifier la configuration de sshd ) était
-compliquée et lourde a mettre en place. Parmi les commentaires, le logiciel
+La solution que j'avais proposée (modifier la configuration de sshd) était
+compliquée et lourde à mettre en place. Parmi les commentaires, le logiciel
mysecureshell_ avait été évoqué.
Présentation
@@ -85,7 +85,7 @@ définissant le Home `mysecureshell` vers un sous-répertoire du home `unix` :
Cela oblige à créer pour chaque utilisateur un répertoire sftp dans son home.
Lorsque l'utilisateur se connectera, il accedera uniquement à répertoire sftp,
-mais ne pourra pas naviguer plus haut, ni consulter les autres répertoire des
+mais ne pourra pas naviguer plus haut, ni consulter les autres répertoires des
autres utilisateurs.
diff --git a/content/Informatique/vala.rst b/content/Informatique/vala.rst
index 7ca8e8e..55d83f3 100755
--- a/content/Informatique/vala.rst
+++ b/content/Informatique/vala.rst
@@ -13,20 +13,20 @@ curiosité, j'ai cherché à en savoir davantage sur le langage. Le langage
C m'a toujours paru difficile à aborder. Non pas au niveau de sa
syntaxe, mais au sujet de l'accès à sa documentation et aux librairies
disponibles. Pour moi qui suis habitué à Java ou à Python, j'ai regardé
-Vala comme un moyen de mettre un pied dans le C. Je vais essayé de
+Vala comme un moyen de mettre un pied dans le C. Je vais essayer de
présenter ma manière de le voir, après avoir fait une petite plongée
dedans…
Présentation
~~~~~~~~~~~~
-Le langage Vala à été créé par les développeurs de Gnome pour qu'ils
+Le langage Vala a été créé par les développeurs de Gnome pour qu'ils
puissent disposer d'un langage de haut niveau. Gnome ayant eu pendant
-quelques temps un pied ( dansant ) dans mono, Vala en est très inspiré.
-( Je ne connais pas mono et ne peux donc pas lancer de comparatif, je
+quelque temps un pied (dansant) dans mono, Vala en est très inspiré.
+(Je ne connais pas mono et ne peux donc pas lancer de comparatif, je
vous renvoie donc à celui présenté par Gnome `par rapport à
C# <http://live.gnome.org/Vala/QuickIntroForCSharpProgrammers>`_, et
-pour `Java <http://live.gnome.org/Vala/ValaForJavaProgrammers>`_ ). Le
+pour `Java <http://live.gnome.org/Vala/ValaForJavaProgrammers>`_). Le
langage est ensuite compilé en C, et GCC est utilisé pour la compilation
d'un exécutable. On est donc dans un langage intermédiaire, qui reste
très proche du C comme nous allons le voir par la suite.
@@ -35,45 +35,40 @@ Analyse
~~~~~~~
Langage objet haut niveau Vala est tout d'abord un langage haut niveau :
-on y retrouve des *interface* ( pour pouvoir moduler le code facilement
-), des *delegate* ( qui permettent de de définir un type de fonction
-pour un callback ), une gestion *événementielle* ( gérer le
-déclenchement de plusieurs méthodes dans le code par un appel unique ) …
-On dispose donc d'un langage objet assez riche pour éviter d'avoir
-passer du temps sur des détails et se concentrer sur le programme et son
-déroulement. Il est pensé objet et l'on retrouve vite ses marques, tout
-comme l'on sent qu'il est assez facile d'« abstraire » le code pour
-faire une application qui n'en reste pas un simple script… Je n'ai pas
-envie de détailler la syntaxe du langage et tout ce qu'il intègre car
-vous pourrez trouver tout cela en ligne. Je vous renvoie au
-`tutoriel <http://live.gnome.org/Vala/Tutorial>`_ qui explique la
-structure du langage en détail, qui présentent des exemples détaillés.
-La GLib Le langage est basé sur la GLib, la librairie standard utilisé
-dans les applications GTK. La plupart des types primitifs ( int… ) sont
-donc en réalités des types issus de cette librairie ( gint…). On accède
-ainsi à l'ensemble des méthodes de la GLib, diffusées sous formes de
-classes objets et bien documentées ( la
-`valadoc <http://valadoc.org/index.html>`_ ). Cela rejoint l'histoire de
-Vala puisque La GLib est tout utilisée par les développeurs Gnome ( on
-constate d'ailleurs que la plupart des composants Gnome ont une entrée
-dans cette Valadoc ). Il ne faut cependant pas croire que l'on dispose
-avec cette bibliothèque standard d'un ensemble de routines aussi riche
-que dans le package standard d'un Java ou d'un Python : la GLib est
-avant tout destinée à des développeurs C, et beaucoup des méthodes
-standard du C n'y sont pas disponibles. Pour parer cela, Vala propose
-une classe POSIX[LIEN] proposant les méthodes standard du C, mais
-celle-ci n'est pas exhaustive et il nous arrive souvent de tomber sur
-une fonction qui ne nous est pas accessible via le langage haut niveau
-qu'est Vala. Les Bindings Pour répondre à cela, propose la possibilité
-de mettre en place un binding vers une libraire C de manière native. (
-Normal me direz vous, le code en sortie de Vala est du C ! ) On peut
-donc très facilement utiliser n'importe quelle libraire existante. Vala
-étant un langage objet, il devient donc possible d'utiliser les
-librairies standard au sein d'un code objet de haut niveau. Cela ne
-demande que quelques lignes, demandant au minimum le fichier dans lequel
-se trouve la définition de la méthode, et sa signature. Exemple du
-binding définissant la méthode execl ( issue du fichier
-/usr/share/vala/vapi/posix.vapi ) :
+on y retrouve des *interface* (pour pouvoir moduler le code facilement), des
+*delegate* (qui permettent de définir un type de fonction pour un callback),
+une gestion *événementielle* (gérer le déclenchement de plusieurs méthodes dans
+le code par un appel unique) … On dispose donc d'un langage objet assez riche
+pour éviter d'avoir à passer du temps sur des détails et se concentrer sur le
+programme et son déroulement. Il est pensé objet et l'on retrouve vite ses
+marques, tout comme l'on sent qu'il est assez facile d'« abstraire » le code
+pour faire une application qui n'en reste pas un simple script… Je n'ai pas
+envie de détailler la syntaxe du langage et tout ce qu'il intègre car vous
+pourrez trouver tout cela en ligne. Je vous renvoie au `tutoriel
+<http://live.gnome.org/Vala/Tutorial>`_ qui explique la structure du langage en
+détail, qui présentent des exemples détaillés. La GLib Le langage est basé sur
+la GLib, la librairie standard utilisé dans les applications GTK. La plupart
+des types primitifs (int…) sont donc en réalités des types issus de cette
+librairie (gint…). On accède ainsi à l'ensemble des méthodes de la GLib,
+diffusées sous formes de classes objets et bien documentées (la `valadoc
+<http://valadoc.org/index.html>`_). Cela rejoint l'histoire de Vala puisque La
+GLib est tout utilisée par les développeurs Gnome (on constate d'ailleurs que
+la plupart des composants Gnome ont une entrée dans cette Valadoc). Il ne faut
+cependant pas croire que l'on dispose avec cette bibliothèque standard d'un
+ensemble de routines aussi riche que dans le package standard d'un Java ou d'un
+Python : la GLib est avant tout destinée à des développeurs C, et beaucoup des
+méthodes standard du C ne sont pas disponibles. Pour parer cela, Vala propose
+une classe POSIX[LIEN] proposant les méthodes standard du C, mais celle-ci
+n'est pas exhaustive et il nous arrive souvent de tomber sur une fonction qui
+ne nous est pas accessible via le langage haut niveau qu'est Vala. Les Bindings
+Pour répondre à cela, propose la possibilité de mettre en place un binding vers
+une libraire C de manière native. (Normal me direz-vous, le code en sortie de
+Vala est du C !) On peut donc très facilement utiliser n'importe quelle
+libraire existante. Vala étant un langage objet, il devient donc possible
+d'utiliser les librairies standard au sein d'un code objet de haut niveau. Cela
+ne demande que quelques lignes, demandant au minimum le fichier dans lequel se
+trouve la définition de la méthode, et sa signature. Exemple du binding
+définissant la méthode execl (issue du fichier /usr/share/vala/vapi/posix.vapi) :
::
@@ -87,7 +82,7 @@ et voici la signature de la méthode C correspondante :
extern int execl (__const char *__path, __const char *__arg, ...) __THROW __nonnull ((1));
Les types primitifs de la GLib étant basés sur les types primitifs C
-correspondant, il n'y a pas de problème de cast dans la plupart de cas.
+correspondants, il n'y a pas de problème de cast dans la plupart de cas.
Toutefois, Vala utilise des char\* pour définir ses string : il est
parfois nécessaire de mettre en place faire un cast quand une méthode
nous un char[] : même dans le code haut niveau, le C n'est jamais loin…
@@ -97,7 +92,7 @@ possibilité d'inclure directement du code C dans le code vala, tout
comme il est possible directement de l'assembleur dans du C. Cela
permettrait un confort dans l'utilisation qui n'est pas disponible
actuellement. À noter qu'un outil permet de mettre en place ces bindings
-pour les composants basés sur GObjet ( Gnome toujours… ). De plus de
+pour les composants basés sur GObjet (Gnome toujours…). De plus de
nombreux bindings sont disponibles pour les composants Gnome. Attention,
cela n'empêchera pas d'avoir à installer les headers C correspondants !
Les profils Il est possible d'utiliser des profils de compilation. Cette
@@ -122,12 +117,12 @@ Conclusion
Pour résumer, je dirais que Vala correspond à ce qu'il annonce : un
langage haut niveau pour faciliter la création d'applications Gnome. Dès
que l'on cherche à sortir de ce cadre, on se retrouve confronté à des
-limitations ( qui ne sont bien sûr pas insurmontable ) :
+limitations (qui ne sont bien sûr pas insurmontable) :
- Pour ceux qui ne cherche pas à travailler sur du code Gnome,
- embarquement de bibliothèques qui ne nous intéressent pas forcement.
- ( Bien que sur ce point, la GLib est plutôt standard sur les PCs
- ayant X d'installés )
+ embarquement de bibliothèques qui ne nous intéressent pas forcément.
+ (Bien que sur ce point, la GLib est plutôt standard sur les PCs
+ ayant X d'installés)
- Pour ceux qui cherchent un langage de haut niveau, le C est encore
trop présent entre les lignes pour pouvoir l'oublier complètement.
D'un autre côté, l'intégration du code C n'est pas toujours évidente
@@ -137,17 +132,15 @@ limitations ( qui ne sont bien sûr pas insurmontable ) :
soient pas encore disponibles oblige à mettre le doigt dans les
bindings régulièrement.
-Le langage est bien sûr encore amené à évoluer, et les points que je
-cite ici ne sont pas pour autant rédhibitoires. D'un point de vue
-totalement subjectif Je trouve le langage simple mais sans trop de
-saveur. Ça reste un langage objet qui n'est bien sûr pas
-révolutionnaire; on sent qu'il ne fait que reprendre les concepts des
-langages qui l'ont inspiré, mais le produit est cohérent, et d'après les
-benchs génère un code plutôt optimisé ( en rapport avec le temps que
-l'on pourrait passer à produire le même code en C ). Après, je ne prend
-pas le même plaisir à programmer en Vala qu'en python ( j'avais bien dit
-que j'étais subjectif ^^ ). Cela dit, pour moi, qui ne suis pas un
-développeur Gnome, je suis plus intéressé par la possibilité d'avoir un
-langage haut niveau qui reste très proche du C, avec les performances
-qui vont avec; si le prix pour cela est une dépendance vers la GLib, ça
-reste un coût sommes toutes assez faible.
+Le langage est bien sûr encore amené à évoluer, et les points que je cite ici
+ne sont pas pour autant rédhibitoires. D'un point de vue totalement subjectif
+Je trouve le langage simple mais sans trop de saveur. Ça reste un langage objet
+qui n'est bien sûr pas révolutionnaire; on sent qu'il ne fait que reprendre les
+concepts des langages qui l'ont inspiré, mais le produit est cohérent, et
+d'après les benchs génère un code plutôt optimisé (en rapport avec le temps que
+l'on pourrait passer à produire le même code en C). Après, je ne prends pas le
+même plaisir à programmer en Vala qu'en python (j'avais bien dit que j'étais
+subjectif ^^). Cela dit, pour moi, qui ne suis pas un développeur Gnome, je
+suis plus intéressé par la possibilité d'avoir un langage haut niveau qui reste
+très proche du C, avec les performances qui vont avec; si le prix pour cela est
+une dépendance vers la GLib, ça reste un coût sommes toutes assez faible.