Chrooter apache
Matériel
Ajout disque dur
Ajout carte
Audit des disques durs
Gestion des peripheriques
Disquette d'installation
Ajout d'un scanner
Astuces
Ajout d'une imprimante
Réseau
Configuration reseau
Dns
Serveur cvs
Proxy squid 
Installation serveur ftp
Installation qmail 
Installation serveur courrier sous debian
Outil TCP/IP 
Le serveur samba
Connexion a distance securisee
Client/serveur vnc
Configurer apache
Dyndns
Installer un LAMP sous mandriva
Sécurité
Chiffrer un fichier/dossier
Securiser son poste
Mur pare feu pas a pas
Authentification ht-access
Surveillance de serveur CACTI
Snort
Snort-inline
Securiser Apache avec mod_security
Filtrage squid/squidguard/dansguardian
Auditer son site web
Sécuriser son linux
Installer un Lamp avec ssl
Contrer les scans de ports
Traitement anti-spam
Installer/Utiliser tripwire
Faire des sauvegardes incrémentales
Rsync
Nessus
Divers
Elisa, le multimédia facile
Utilisation de lilo
Les commandes Linux
Le multi-tache
Le crontab
Exploration de la configuration
Quotas
Messagerie
Installer une application
Debugger ses applications
Le format RPM
Mise a jour du noyau
Qemu
Tour d'horizon des principaux p2p
Récupération du système
Bips d'un pc
Astuces windows
Table Ascii
Lamerland
Conversion de fichiers musicaux
Compiler ses rpms
Graver en ligne de commande
Graver un fichier avi pour un dvd de salon
Récupérer des fichiers effacés
Liens
hakin9
Secureroot.com
Hackerthreads.org
Defcon
Hackerlounge
Les derniers exploits
Tous les codes sources
Securite sous Linux
Les logiciels libres quotidiens
Ezine divers
Madchat
Textes divers
Archives
 
Traductions LG
Toutes les traductions
Traductions Phrack
Toutes les traductions

Il y a actuellement 7 visiteurs connectés sur le site !

Google

Administrer Mysql
Administrer Mysql

 

Rappels : installation sous Linux et configuration
Introduction à l'administration en ligne de commande
Comment consulter la documentation ?
Quelles sont les bases déjà installées ?
Comment dialoguer avec le serveur Mysql ?
Quels sont les premiers utilisateurs ?
Définir un mot de passe d'administration pour root de Mysql
Se reconnecter localement comme root
Commande de connexion générale
Pour se connecter directement à une base
Supprimer l'utilisateur anonyme
Comment créer une nouvelle base ?
Comment supprimer une base ?
Comment créer des utilisateurs ?
Comment créer une table ?
Comment connaitre l'état du serveur ? utilitaire mysqladmin
Comment sauvegarder les bases ? utilitaire mysqldump ?
Comment vérifier et réparer les bases ?
Droits d'accés aux bases
Description des droits d'accés MySql
Méthode de détermination des privilèges
Gestion à distance
Administration par phpMyAdmin

 

Rappels

Rappels : installation sous Linux et configuration

Il s'agit ici de décrire l'installation et la prise en main de l'administration du serveur, en laissant de côté l'accés par programmation à l'aide de PHP.
* On installe tout en même temps que Linux, ou bien ensuite les packages indispensables pour MySql, PHP et Apache (voir ici une description plus complète)

Voici la liste des paquetages, au format rpm, supposés installés :
o MySQL (tout)
o apache, apache-common, apache-devel (éventuellement apache-mod-perl (pour intégrer Perl dans Apache, apache-mod-suexec)
o éventuellement perl et qq modules : perl-DBI (api perl pour gérer une base de données), perl-Mysql (pilote DBD::mysql),
o php 4.0.3pl1mdk, mod-php, php-mysql, php-manual
o phpMyAdmin, qui est un ensemble de scripts PHP permettant de gérer complétement le serveur et ses bases par interface WEB distante (voir ici pour son installation spécifique)

Les programmes sont-ils déjà installés ?

* Pour vérifier en ligne de commande (et obtenir le numéro de version) rpm -q MySQL --> MySQL-3.22.32-5.mdk
Ou Sous X-KDE , chercher avec l'utilitaire kpackage

Le serveur MySql est-il en fonctionnement ? Comment le démarrer ?
* Pour simplement vérifier l'état du serveur, on passe la commande standard
ps ax |grep mysql
* Si mysqld est en fonctionnement, on obtient les références à 3 processus lancés par le programme/usr/sbin/mysqld
* Si nécessaire, au cas ou le serveur mysqld n'est pas lancé au démarrage, (comme pour les autres "démons", sur des distributions de type RedHat), on peut le démarrer ou l'arrêter le "moteur" Mysql par la commande /etc/rc.d/init.d/mysql {start | stop }
* Pour lancer le serveur automatiquement au démarrage de la machine (ou lors d'un reboot), utiliser l'utilitaire ntsysv, et cocher mysql.
* Au (re)démarrage, on peut lire le message : "Starting mysql deamons with databases from /var/lib/mysql",
ce qui indique que les bases de données sont stockées dans /var/lib/mysql

Introduction à l'administration en ligne de commande

Comment consulter la documentation

# Le fichier HTML
/usr/share/doc/Mysql/manual_toc.html présente le sommaire du manuel de référence (en anglais) sous forme de liens vers un seul énorme fichier HTML, de ce fait difficilement "navigable".
# Consulter aussi les documentations, aux formats HTML et PDF, présentes sur le site http://www.mysql.com, et traduites sur http://www.nexen.net

Quelles sont les bases deja installees?

* Dès le début de son fonctionnement le moteur a installé 2 bases : test (vide) et mysql, base de données du moteur, destinee à gérer les utilisateurs du serveur et leur droits d'accés.
* Les bases créees occupent chacune un sous-répertoire de /var/lib/mysql
* A ce stade, on peut consulter la liste des bases avec la commande shell : $ mysqlshow

Comment dialoguer avec le serveur Mysql ?

* La commande mysql execute un utilitaire qui permet de dialoguer avec le serveur MySql. Ce mode de gestion s'effectue en ligne de commande et est appelé le mode console.
* Lancer cet utilitaire mysql. A ce stade que l'on soit root ou utilisateur quelconque, aucun mot de passe n'est demandé. Et l'on se trouve devant le prompt mysql> ce qui signifie que l'interpréteur de commandes SQL attend nos requêtes.

$ mysql
Welcome to the MySQL monitor. Commands ends with ; or \g
Your Mysql connection id is ...
tape help; ou \h for help
mysql>

Quels sont les premiers utilisateurs ?

2 utilisateurs ont déjà été créés par l'installation

1. Un super-utilisateur du serveur MySql, appelé root@localhost (homonyme du superviseur Linux, mais qui en est bien distinct).
Celui-ci posséde tous les droits sur les bases de données et en particulier sur la base d'administration nommée elle aussi mysql
Or, à l'installation root peut se connecter sans mot de passe ! Il faudra de toute urgence lui en imposer un !

2. L'utilisateur anonyme, @localhost qui ne possède que des droits d'accés très rèduits,
comme prendre connaissance des bases installées par la commande SQL show databases; root@localhost. L'installation l'ayant créé sans mot de passe,

3. Afin de tester avec l'utilitaire mysql, passer les commandes SQL suivantes, et observer leurs effets.
Comme l'accés à la base système mysql est refusé, reprendre sous le compte root .Remarque : les commandes SQL et en particulier celles que l'on passe dans l'utilitaire mysql, ne sont pas sensibles à la casse. Mais par convention, il est d'usage d'écrire les mots-clés SQL en majuscules.

$ mysql
mysql> SHOW databases;
mysql> USE test;
mysql> SHOW tables;
mysql> USE mysql;
mysql> SHOW tables;
mysql> SHOW columns FROM user;
mysql> SELECT host, user, password FROM user;
mysql>quit

Définir un mot de passe d'administration pour root de Mysql

# # mysqladmin -u root password moi
Le mot de passe de l'administrateur "root" de mysql est maintenant moi.
# Variante : on peut utiliser le mode console, avec la fonction de cryptage PASSWORD(), spécifique à Mysql
mysql>SET PASSWORD FOR root= PASSWORD('moi');
Un bon mot de passe root doit comprendre entre 10 et 13 caractères, il est aussi intèressant de modifier son nom en un autre nom anodin, histoire de compliquer la tâche d'éventuels pirates

update mysql set user='chef' where user='root';
flush privileges;
Et pour créer un compte root sans droit

grant usage on *.* to 'root'@'localhost';
ou le mot clé usage représente l'absence de droit d'utilisation, aucun accès aux tables et aux données n'est autorisé

Se reconnecter localement comme root

* # mysql --> access denied for user root@localhost
* Désormais, pour se connecter au serveur, il doit préciser son mot de passe interactivement
# mysql -u root -p
Enter password : moi (il n'apparait pas à l'écran)
Welcome to the MySQL monitor
......

Commande de connexion générale

* Le paramètre -u user est indispensable si l'utilisateur Mysql user qui veut se connecter, est différent du compte utilisateur actuellement connecté au système.

* Si le serveur Mysql est hébergé par une autre machine, il faut préciser son nom d'hôte après le paramètre -h

* Si on met juste le paramètre -p, le mot de passe est demandé interactivement, comme cela a été décrit ci-dessus.

Mais on peut le donner (attention en clair !) collé après -p, repreons l'exemple précédent :
# mysql -h machine -u root -pmoi
mysql>

* Par exemple l'utilisateur actuel du système veut se connecter sous le nom d'utilisateur Mysql jean, au serveur en exécution sur la machine appelée apache du domaine bahut.ac-creteil.fr
# mysql -h apache -u jean -p
Enter password : (il n'apparait pas à l'écran)
Welcome to the MySQL monitor
mysql>

Pour se connecter directement à une base

* On précise le nom de cette base aussi dans la ligne de commande, généralement à la fin

* exemple 1 : root veut ouvrir la base d'administration système mysql (sous-entendu à la machine localhost) puis interroger la table user :
# mysql -u root -p mysql
Enter password : ...
Welcome to the MySQL monitor
......
mysql> SELECT host, user, password FROM user;
On observe alors le mot de passe de root crypté !

* exemple 2 : jean est l'administrateur de la base profs, avec le mot de passe jeannot et il veut la gérer à distance en mode console. Supposons que le serveur mysql soit hébergé par la machine nommée apache et que jean se connecte à partir de la machine nommée station1
Il examine ensuite la liste des tables de la base profs :
[jean@station1 jean]$ mysql -h apache -u jean -pjeannot profs
.............
mysql> SHOW TABLES;

Supprimer l'utilisateur anonyme

* Il est vivement recommandé de le supprimer ... pas vraiment pour une question de sécurité car ses priviléges sont très limités, mais pour éviter des confusions liees à la procédure d'authentification ( voir détermination des priviléges).
Pour le supprimer, root se connecte à la base mysql, et supprime logiquement de la table des utilisateurs mysql.user les enregistrements ou le champ user est vide.

# mysql -p mysql
mysql> DELETE FROM user WHERE user='';

* Ré-examen de la table des utilisateurs : elle ne doit contenir que les lignes concernant root

# mysql -p mysql
mysql> select host, user, password from user ;
localhost root mot-de-passe-crypté

Pour repérer les comptes sans mot de passe, il suffit d'utiliser la requête suivante :
select * from mysql.user where password='';

Et pour les supprimer:
delete * from mysql.user where password=''; flush privileges;

Comment créer une nouvelle base ?

* root crée une nouvelle base de données nommée essais et vérifie sa présence dans la liste des bases

# mysql -u root -p
mysql> CREATE DATABASE essais;
Query OK, 1 row affected (0.00 sec)
mysql> SHOW DATABASES;

* La nouvelle base essais sera install�e dans un répertoire qui porte son nom, c'est-à-dire ici /var/lib/mysql/essais.
Pour le moment ce répertoire créé est vide. Il porte les droits de propriété 700 pour l'utilisateur mysql.

Comment supprimer une base ?

* En mode console, root passe la commande sans recours (attention !)

mysql> DROP DATABASE essais;
Query OK, 0 row affected (0.00 sec)

Comment créer des utilisateurs ?

* C'est le privilége de root de gérer les utilisateurs des bases de données, et de leur accorder les droits au niveau d'une base ou d'une table.
Les commandes GRANT et REVOKE permettent d'attribuer et de retirer des droits d'accés
Il est possible de préciser si l'utilisateur aura droit d'accés à la base seulement localement (clause TO user@localhost) ou est permise à distance (TO 'user@%').
* Syntaxe générale :

mysql> GRANT [ALL PRIVILEGES | liste de priviléges]
ON [base.table | base.*]
TO [user@localhost | 'user@%' | 'user@%.domaine']
IDENTIFIED BY "mot-de-passe";

* Quelques exemples

Création du nouvel utilisateur toto, de mot de passe toto à qui on accorde tous les droits sur les tables de la base essais (il en sera l'administrateur)
mysql> GRANT ALL PRIVILEGES
ON essais.*
TO toto@localhost
IDENTIFIED BY "toto";

Création du nouvel utilisateur jean, de mot de passe jeannot à qui on accorde tous les droits sur toutes les bases
mysql> GRANT ALL PRIVILEGES
ON *.*
TO 'jean@%'
IDENTIFIED BY "jeannot";


L'utilisateur admin, de mot de passe admin est le gestionnaire de la base cdi. Il y aura tous les privil�ves et pourra se connecter à distance

mysql> GRANT ALL PRIVILEGES
ON cdi.*
TO 'admin@%'
IDENTIFIED BY "admin";

Le nouveau utilisateur public sur la machine locale aura droit complet d'administration sur les tables de la base magasin
vérifier en consultant la table db de la base système mysql (par exemple avec phpMySql)
mysql> GRANT ALL PRIVILEGES ON essais.* TO public@localhost;

Comment créer une table ?

Pour créer la table carnet dans la base essais, il faut se connecter au serveur, et passer la commande :
mysql> CREATE TABLE essais.carnet (num int, nom varchar(30), email varchar(30) );
# On constate que 3 fichiers portant le nom de la table sont créés dans le répertoire de la base /var/lib/mysql/essais
Il en sera de même pour nouvelle table incluse dans cette base.

carnet.MYDcontient les données (vide à la création)
carnet.MYIcontient la descripton des index
carnet.frm décrit la structure de la table

Comment connaitre l'état du serveur ? L'utilitaire mysqladmin

* L'utiitaire mysqladmin est spécialisé dans la gestion interne du serveur (mais aussi des bases et des utilisateurs)
Ainsi, pour arrêter le serveur : mysqladmin shutdown
* Pour connaitre la charge de travail du serveur et des statistiques, option status :

# mysqladmin -p status
Enter password :
Uptime: 4153 Treads: 1 Questions 76 ......
Uptime donne le nombre de secondes écoulées depuis le lancement du serveur mysqld, Threads le nombre de processus fils, c'est-à-dire à peu prés le nombre de connexions ouvertes par des clients
* Pour connaitre le détail de chaque connexion cliente, option processlist

# mysqladmin -p processlist
Enter password :
Id User Host db Command Time State Info

Comment sauvegarder les bases ? utilitaire mysqldump

* A la place de commandes de sauvegardes classiques comme tar, il est bien préférable d'utiliser un outil spécialisé mysqldump, qui génére le source écrit en commandes SQL. La restauration consiste alors à éxecuter ce fichier de commandes.

* Cet utilitaire possède de nombreuses options : voir man mysqldump
* Pour sauvegarder le contenu de la base essais dans un fichier essais.sql, situé dans /home/mysql.svg (l'option -p pour faire demander le mot de passe )

# mkdir /home/mysql.svg
$ mysqldump -p essais > /home/mysql.svg/essais.sql
$ less essais.sql

* Pour restaurer la base essais, si nécessaire procéder d'abord à sa (re)création, puis importer le fichier sauvegardé précédemment essais.sql, en entrée de la commande mysql. La ligne suivante va alors produire l'exécution des commandes SQL qu'il contient, et donc reconstituer les structures des tables et y réinsérer tous leurs enregistrements

# mysql -p essais < /home/mysql.svg/essais.sql
* Ici, le gestionnaire admin ne sauvegarde que les structures des tables (option -d), et place le résultat dans son rép.personnel.

$ mysqldump -u admin -p -d essais > ~/essais.sql
$ less /home/admin/essais.sql

* On peut sauvegarder séparément la structure et les données de chaque table de la base essais, dans un répertoire /home/mysql.svg Pour chaque table de la base essais, 2 fichiers sont générés. Ainsi carnet.sql et carnet.txt contiennent respectivement les commandes de création de la table carnet, et ses enregistrements.

# mysqldump -p essais -T /home/mysql.svg
# cd /home/mysql.svg ; ll

Comment vérifier et réparer les bases ?

* L'utilitaire myisamchk est surtout utilisé pour retrouver l'intégrité d'une table endommagée. Il doit etre lancé pendant un arret du serveur, et il faut indiquer le chemin.

# myisamchk -d /var/lib/mysql/cdi/eleves
ISAM files: eleves
Data records : 150 Deteted blocks: 0
.........
* L'option -r défragmente le fichier si nécessaire (en cas de nombreux Deteted blocks)
# myisamchk -r cdi.eleves

Droits d'accés aux bases

Ils sont inclus dans les 5 tables de la base de données mysql, dont la gestion est le privilége de root.
L'administrateur général root est le seul à pouvoir y accéder (et il doit demeurer le seul !), c'est donc le seul

* à créer des utilisateurs (login, mot de passe)
* à les supprimer
* à fixer leur droits (on dit dans le contexte "priviléges") sur les bases, et à les modifier.

Ce qui ne signifie pas qu'il soit impossible de déléguer des taches d'administration de bases à d'autres utilisateurs.

Description des droits d'accés MySql

# La table mysql.user contient la liste des comptes pouvant acceder au serveur et determine les droits au niveau serveur sur l'ensemble des bases. Elle est consultee lors de chaque demande de connexion (essentiellement par l'utilitaire mysql, et par la fonction PHP mysql_connect()). Voici la structure de cette table

Attribut Valeur Signification
Host   La machine de laquelle on tente la connexion (host=localhost par défaut)
User   nom de connexion de l'utilisateur
Password   mot de passe mysql de l'utilisateur
Select_priv Y/N droit de sélection
Insert_priv Y/N droit d'insertion
Update_priv Y/N droit de modification
Delete_priv Y/N droit de suppression
Index_priv Y/N Indexation
Alter_priv Y/N droit de modification (table, champ)
Create_priv Y/N droit de création
Drop_priv Y/N Suppression
Grant_priv Y/N Permission
Reload_priv Y/N Relancer mysql
Shutdown_priv Y/N Arreter mysql
Process_priv Y/N Processus
File_priv Y/N Lecture et écriture de fichiers (import/export)

  • La table mysql.db contient les priviléges d'un utilisateur (autre que root) sur chaque base de données créée (donc pas la table mysql). Elle est consultée à chaque commande SQL de cet utilisateur portant sur les tables de cette base, pour examiner s'il a le droit le "privilége" de pouvoir utiliser cette commande. Voici la structure cette table :

    Attribut Valeur Signification
    Host   machine de laquelle on tente la connexion
    Db   Base de données
    User   Utilisateur
    Select_priv Y/N droit select, de passer des commandes sql SELECT
    Insert_priv Y/N droit insert, de passer des commandes INSERT
    Update_priv Y/N droit update, de mise à jour des enregistrements d'une table
    Delete_priv Y/N droit delete, d'effacement des enregistrements d'une table
    Index_priv Y/N droit d'utiliser INDEX pour créer ou supprimer des index
    Alter_priv Y/N droit alter, pour utiliser ALTER TABLE pour modifier la structure d'une table (ou la renommer)
    Create_priv Y/N droit create, d'utiliser CREATE pour créer de nouvelles bases ou tables
    Drop_priv Y/N droit drop, d'utiliser DROP pour supprimer une base existante (ou une table)
    Grant_priv Y/N droit grant, attribue à d'autres utilisateurs Mysql les permissions que l'on possède
  • Les tables mysql.tables_priv et mysql.columns_priv déterminent des droits plus précis des utilisateurs respectivement sur une table d'une base et sur un champ d'une table, dont on ne parlera pas ici.

  • Root peut tout-à-fait intervenir par requéte SQL dans la base mysql afin d'administrer les comptes Exemple en mode moniteur mysql :
    Il s'agit de créer un utilisateur jean, de mot de passe jeannot qui doit posséder tous les priviléges (uniquement) sur les tables de la base etablissement. Puis on change son mot de passe pour lapin root passe les commandes SQL suivantes à la base système mysql

    mysql>USE mysql
    mysql>INSERT INTO user (host, user, password) VALUES ('localhost', 'jean', PASSWORD('jeannot') );
    mysql>INSERT INTO db VALUES ('localhost', 'etablissement', 'jean', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y' );
    mysql>UPDATE user SET password = PASSWORD('lapin') WHERE user='jean' ;
    # Ou root peut utiliser les commandes GRANT et REVOKE déjà présentées.
    mysql>USE mysql
    mysql>GRANT ALL PRIVILEGES ON etablissement.* TO jean IDENTIFIED BY 'jeannot' ;

    Méthode de détermination des priviléges

    Comment le moteur Mysql utilise t-il les tables précédentes pour déterminer les réponses à des requêtes de connexion d'un utilisateur à une base, puis face à une requête SQL portant sur les tables de cette base ?
    Pour plus de détail, consulter dans la doc, la page manuel_Privileges.html

    Gestion à distance

    # Le problème
    Toto est l'administrateur de la base de données appelée films, située sur la machine appelée serveur.bahut.fr. Il souhaite la gérer à l'aide du moniteur mysql, mais à distance, à partir de n'importe quelle station du réseau de l'établissement (dont le nom de domaine est supposé bahut.fr).
    Pour le moment, il n'est répertorié dans la table d'administration mysql.user que comme l'utilisateur local toto@localhost Quelle commande root devra t-il passer ?
    # root crée un nouvel utilisateur de nom toto et d'hôte %.bahut.fr Le symbole % est ici un caractère générique qui signifie "toute station du domaine"

    $ mysql -u root -p
    .....
    mysql> GRANT ALL PRIVILEGES
    ON films.*
    TO 'toto@%.bahut.fr'
    IDENTIFIED BY "toto";

    # toto teste son nouveau privilége à partir de la station pc12. Quelle question pose t-il ?
    On suppose que le nom de machine bahut est connue (par fichier /etc/hosts ou DNS)
    [toto@pc12 toto] $ mysql -h serveur -u toto -p films
    Welcome ...
    mysql> SELECT nom_realisateur, duree, annee
    FROM realisateur, mesFilmsPreferes
    WHERE titre LIKE '%titanic%
    AND mesFilmsPreferes.num_film = realisateur.num_film ;

    Administration par phpMyAdmin

    phpMyAdmin est un ensemble de scripts PHP permettant de gérer complétement ses bases de données par le truchement d'une interface WEB distante.

    * Attention ! Par défaut l'accés à la gestion des bases par phpMyAdmin n'est pas protégé. Donc tout utilisateur peut lancer l'URL vers phpMyAdmin, et à travers cette interface agir comme root

    Il faut donc placer rapidement dans le répertoire un processus d'authentification par mot de passe.
    * Pour cela, il faut effectuer une petite modification du paramétrage dans le fichier de configuration config.inc.php.
    (explications détaillées dans le fichier Documentation.html accessible sur la page d'accueil)
    Choisir l'authentification par le serveur http. A l'utilisation, une boite d'authentification s'ouvrira pour saisir login et mot de passe de l'utilisateur mysql :

    $cfgServers[$i]['auth_type'] = 'http'
    $cfgServers[$i]['user'] = 'root'
    $cfgServers[$i]['password'] = ''
    # accés réseau
    # Il faut préciser l'URL absolue du répertoire d'accueil des scripts PHP de Phpmyadmin sur le serveur WEB
    A partir du paramétrage par défaut à l'installation
    $cfg['PmaAbsoluteUri'] = 'http://127.0.01/phpMyAdmin-2.4.0/';
    remplacer 127.0.0.1 par l'ip ou le nom DNS du serveur Web qui l'h�berge
    # Il n'y a aucune raison que le serveur MYSQL que Phpmyadmin doit gérer, se trouve sur la meme machine (ce qui est le cas d'une installation "globale" réalisée par un portage du type EASYPHP sur machine Windows, pratique pour une premiére prise en main et un apprentissage des langages PHP et SQL), Dans le cas général, il faut donc remplacer 'localhost' sur cette ligne :

    $cfgServers[$i]['host'] = 'nom_ou_ip_mysql'

    Sources de l'article


 

Blog
Le blog
La radio
La Radio
Boutique
La boutique du Geek
Php/Mysql
Formulaire en php
Administrer un serveur Mysql
Session en php
Gerer ses bases mysql
Les bases php
Securiser ses scripts PHP
Controler ses programmes avec RATS
Convertir une base sql en utf8
Astuces php
Le fichier php.ini
Programmation
Python rapide
Tutorial Python
Tutorial Perl
Tutorial Perl complet
Tutoriel ruby
Tutoriel C
Introduction à gawk
Filtres et utilitaires
Find
Programmation Shell
Ecriture de scripts bash
Expressions regulieres
Vi
Introduction a Javascript
Compiler avec gcc
Astuces en Bash
Cracking
Tutoriel Assembleur
Guide du cracking pour débutant
Assembleur
Manual Unpacking
Techniques de Protection
Différentes failles Web
Arp spoofing dans un réseau switché
Les intrusions
Les attaques externes
Defacage
Defacage complet
Buffer overflow
Netcat
Injection sql
Injection sql(suite)
John the Ripper
Spoofer un email
Utiliser google
La faille system
Usurper une identité
Le rooting
Shellcode sous Unix
La faille race condition
La faille xss
La faille xss (2)
Attaques sur un routeur
P2P
Azureus pas-a-pas
News
Lire les news de Linux-pour-lesnuls.com au format RSS
Distros
Gestion des paquets debian
101 commandes debian
Jeu
Webtarot
Graphisme
Effet neon dans GIMP
Effet vapeur dans GIMP
Cours fonctionnalités de GIMP
Redimentionner une image avec GIMP
Redimentionner une photo pour en faire un cadre avec gimp
Morphing avec gimp
Détourer avec gimp
Réduire le poids d'une image avec gimp
Caricature avec gimp
Humour
Ensemble
Divers