Les bases de GNU/Linux

De Backtrack-fr

Sommaire

Introduction

Attention, les versions a partir de BackTrack v.4.0 Beta sont basées sur une debian/ubuntu

Nous allons vous détailler ici les principales commandes de base des systèmes Linux, vous décrire le système de fichier GNU/Linux et vous montrer différentes configurations (système, réseau, x). Pour cela vous allez devoir passer en mode terminal ou ligne de commande.

Aide

Une des commandes à connaître est MAN, elle vous permet d'afficher toutes les pages de doc d'un soft dans un terminal.

BT~# man
Quelle page de manuel voulez-vous ?
BT~# man man
MAN(1)          Utilitaires de l’afficheur des pages de manuel          MAN(1)
NOM
      man - Interface de consultation des manuels de référence en ligne
SYNOPSIS
      man  [-c|-w|-tZ]  [-H[navigateur]] [-T[périphérique]] [-adhu7V] [-i|-I]
      [-m système[,...]] [-L langue] [-p chaîne] [-C fichier] [-M chemin] [-P
      afficheur]   [-r   invite]   [-S   liste]   [-e  extension]  [[section]
      page ...] ...
      man -l [-7] [-tZ] [-H[navigateur]] [-T[périphérique]] [-p  chaîne]  [-P
      afficheur] [-r invite] fichier ...
      man -k [apropos options] expression_rationnelle ...
      man -f [whatis options] page ...
DESCRIPTION 
man est le programme de visualisation des pages de manuel. Chacun des arguments page, indiqué dans la ligne de commande  de man, porte, en principe, le nom d’un programme, d’un utilitaire ou d’une fonction...

Vous remarquerez le numéro 1 entre parentèse derrière le mot man -MAN(1)-. Ce numéro correspond à la section à laquelle ce rapporte la doc pour le logiciel. Il y a donc plusieurs sections :

Section 1         Commandes utilisateur, programmes executables ou commandes de l'interépeteur de commande (shel)
Section 2         Appels libraires C, Appels système (Fonctions fournies par le noyau)
Section 3         Appels  de  bibliothèque  (fonctions  fournies  par  les  bibliothèques des programmes)
Section 4	  périphériques (ex., hd, sd)
Section 5         formats de fichier et protocoles (ex., wtmp, /etc/passwd, nfs)
Section 6         jeux
Section 7         Divers, conventions, macropaquet, etc. (ex., nroff, ascii)
Section 8         Commandes  de  gestion  du  système (généralement réservées au superutilisateur)

En plus de la commande man, il y a aussi les commandes "whatis" et "apropos". Whatis vous donnes une petite description du système de commande.

BT:~# whatis man
man (1)              - an interface to the on-line reference manuals
man (7)              - macros to format man pages

et apropos est utilisée pour chercher une page dans MAN qui contient le mot donné.

BT:~# apropos aircrack
aircrack-ng (1)      - (sujet inconnu)
aircrack-ng is a 802.11 WEP / WPA-PSK key cracker. (1) [aircrack-ng] - (sujet inconnu)
airodump-ng is a packet capture tool for aircrack-ng. (1) [airodump-ng] - (sujet inconnu)
airtun-ng is a virtual tunnel interface creator for aircrack-ng. (1) [airtun-ng] - (sujet inconnu)

Configuration du système

Avant de pouvoir commencer à essayer de configurer votre système, ça serait pas mal d'apprendre et de connaître l'organisation des répertoires ainsi que les commandes de bases pour se déplacer dans l'arborescence de fichier.

Opérations courantes (déplacement, suppression, listages, permission...)

Changement de répertoire

"cd nom_repertoire" "cd .." "cd /"

Lister un répretoire

"ls" "ls -l" "ls /monrépertoire"

Supprimer un fichier, un répertoire

"rm nom_repertoire" "rmdir" "rm -rf"

Créer un réperoire

"mkdir nom_repertoire"

Déplacer renomer un fichier, un répertoire

"mv" "mv monfichieràrenommer monnewficher"

Copier un fichier, un répertoire

"cp" "cp monfichier ."

Changer, attribuer les permissions sur un fichier ou répertoire

"chmod" "chmod+X" "chmod 777 monfichier"

Sous-répertoires racines et leur utilité

/bin

C'est dans ce répertoire que se trouvent tous les programmes essentiels. C'est également ici que sont stockés le shell et les principales commandes utilisateurs comme ls, cp, etc...

/boot

C'est ici que se trouve le kernel et les fichiers utilisés par LILO.

/dev

Il faut se rappeler que sous linux tout est traité comme fichier, même le hardware comme les disks ou le lecteur CD. Donc c'est ici que se trouve tous les devices.

/etc

C'est ici que l on trouve tous les fichiers de configuration. Configuration du server X, gestion des users (passwd, shadow), script de démarage.

/home

Chaque utilisateur du système possède un répertoire créé dans /home afin de recevoir ses fichiers personnels.

/lib

Toutes les librairies utiles aux opérations basiques sont stockées ici. Les lib C, ncurses, modules du kernel etc.

/mnt

C'est le répertoire qui contient tous les points de montages temporaire comme les CD-Rom ou floppy.

/opt

C'est ici que l'on devrait trouver tous les programmes optionnels. Tout ce que l'on installe en plus, par exmeple /opt/amsn :). Le but de ce répertoire est la facilité pour supprimer tout ce que l'on ne voudrait plus. Bien sûr, vous êtes libre d'installer les softs où vous voulez.

/proc

Ceci est un répertoire unique qui ne fait pas vraiment partie du systeme de fichier. C'est plutôt un filesystem virtuel qui donne accès aux infos du kernel. Ex: cat /proc/cpuinfo.

/root

Root est l'administrateur système. Son répertoire est ici et non pas dans /home/root. Pourquoi, pour la simple et bonne raison, que le répertoire home pourrait se trouver sur une autre partition que / et pourrait ne pas être monté. Comment pourrait-on alors se logguer en root, pour remédier au problème si le compte se trouve sur la partition qui ne se monte pas ?

/sbin

Tout les programmes essentiels lancés par root lors du boot se trouvent ici. Un utilisateur lambda, ne connaisant pas le pass root ne peut lancer ces commandes.

/tmp

C'est l'espace de stockage temporaire et tous les utilisateurs ont un accés en lecture/écriture ici.

/usr

C'est le plus grand répertoire d'un système linux. Tout se retouve ici, programmes, documentation, code source du kernel et les fichier du server X. C'est le répertoire le plus utilisé pour installer les programmes.

/var

Tous les logs, données du cache et données verrouillées (mysql) sont ici. C'est le répertoire dans lequel les données changent souvent.

Savoir rechercher, localiser un élément (fichier, expression,...)

 which 

Localiser un binaire, le programme vous renverra le chemin complet de celui-ci.

 whereis 

Affiche tous les chemins référants à un binaire (sa documentation, son executable, ses fichiers sources).

 find

Programme puissant de recherche de fichier et de répertoire , permettant d'affecter des actions aux résultats.

 grep 

Second programme puissant indispensable, qui s'utilise pour la recherche de texte.

 locate et slocate 

Equivalent à find.

Création, modification des données

nano
sed 

permet d'appliqué des commandes sur un fichier

wc 

affiche le nombre de ligne , d'octet ou de mots d'un fichier

touch 

modifie la dernière date d'ouverture d'un fichier , sinon crée un nouveau fichier vide .

tail 

affiche la dernière partie d'un fichier

vi
vim

Protéger, Définir, Resteindre ces données

 ACL  
 chmod  
 umask

L'environnement et ses variables

Dans le shell :

env : Liste l'environnement

setenv toto titi : creer une variable toto egal a titi

unsetenv toto : supprimer la variable toto

Qui fait quoi ?

HOME : Contient le path vers le repertoire home
PWD : Contient le path courant
PATH : Contient le path des binaires utilise par le shell
USER : Contient le nom d'utilisateur
TERMCAP : Contient la liste des codes pour les termcaps (existe sous backtrack ?)

Redirection des données et séparateurs

Entrée/Sorties

La simple a droite : ls -l > toto.txt Cree un fichier toto.txt si il n'existe pas et redirige le "ls -l" dedans. Si on fait un cat sur toto.txt on verra le ls -l. Redirige la sortie standard sur le fd du fichier passe en parametre.

La double a droite : ls -l >> toto.txt Meme chose que la simple avec un bonus en plus, rajoute a la suite du fichier. En effet avec une simple redirection a droite, cela ecrase le fichier. Avec la double, c'est mis a la suite.

Les Pipes

Ex : ls -l | more

Redirige la sortie de ls -l dans un tube (pipe) qui sera interpreter comme l'entree standard de "more". Au final, sera afficher un ls -l avec un more applique dessus.

Ex2 : ls -l | grep toto

Va faire un ls -l, puis rechercher toto dedans et l'afficher.

Le réperoire /etc/rc.d

Les scripts d'initialisation système sont stockés dans le répertoires /etc/rc.d.

..

Script d'initialisation / runlevel

rc.0 rc.4 rc.6 ..

Initialisation réseau

rc.inet1 rc.inet2 ..

Ebauche, tout est à détailler, n'hésitez pas...

Configuration Réseau

netconfig


TCP/IP

iftop

DHCP

PCMCIA

reverse cell phone lookup

reverse lookup

Outils personnels