| Sous-sections 
 
man est la commande la plus utile du système car elle permet de connaître toutes les options possibles
                        de chaques commandes.
| ___________________________________________________________________ |  | man |  |  |  On notera que les man sont toujours mis à jour sous les différents BSD ce qui n'est pas toujours le cas sous linux.
 
Semblable au man mais est aujourd'hui le format officiel de documentation sous Linux.
| ___________________________________________________________________ |  | info |  |  |  
Comme son nom l'indique permet d'avoir une description succincte sur un programme.
| ___________________________________________________________________ |  | whatis |  |  |  
Le Howto est une particularité linux, qui explique comment
                        installer ou configurer certains programmes, fonctionnalitées ou services.
                        On trouve généralement ces documentations au format HTML dans /usr/share/doc/HOWTO
          Dans les systèmes de fichier Linux/Unix tous les fichiers sont définis selon trois types de droits:
| ___________________________________________________________________ |  | HOWTO |  |  |  
 
Ensuite pour chacun de ces type on attribuera de la même façon trois types de droits:les droits attribués au propriétaire du fichier sur le fichier,
les droits attribués au groupe du fichier sur le fichier, 
et enfin les droits attribués pour tous les autres sur le fichier.
          
 
Ainsi lors d'un ``ls -l '' on pourra voir apparaître la ligne:lecture. ( ou r pour read)
écriture. ( ou w pour write)
execution. ( ou x pour exécution)
          
 
 
|  | -rwxr-xr- | 1 | seb | users | 15 Aug | 15 | 14:02 | hello_world.pl |  Nous allons donc décrire la signification de chacun des champs significatifs de cette ligne:
 
 
rwxr-xr- Sur ce premier champ apparaissent les droits du fichier que l'on pourra décomposer de la façon suivante:
rwx  pour le propriétaire: 
r: le propriétaire pourra lire ce fichier.
w: le propriétaire pourra modifier ce fichier.
x: le propriétaire pourra exécuter ce fichier.          
              
r-x  pour le groupe: 
r: le groupe pourra lire ce fichier.
-: le groupe ne pourra pas modifier ce fichier.
x: le groupe  exécuter ce fichier.
              
r-  pour les autres: 
r: les autres pourront lire ce fichier.
-: les autres ne pourront pas modifier ce fichier.
-: les autres ne pourront pas exécuter ce fichier.
              
seb   le propriétaire du fichier.
users  le groupe du fichier.
15 Aug 14:02 date de création du fichier.
hello_world.pl nom du fichier.
          
 
ls permet de visualiser les fichiers contenus  dans le répertoire
          courant.
          Les options usuelles sont:
| ___________________________________________________________________ |  | ls |  
 
| -l | affichages de toutes les informations sur le fichier. |  | -R | affiche également les fichiers des sous répertoires. |  | -a | affiche les fichiers commençant par un ``.'' ie: ``cachés'' |  | -h | human readable |  | -F | affiche les nom des répertoires en finissant par ``/''. |  |  | affiche les nom des fichiers exécutables en finissant par ``*''. |  |  | affiche les nom des liens en finissant par ``#9512#> |  
cd : ``change directory'' ie: changer de répertoire
| ___________________________________________________________________ |  | cd |  
 
| cd  ou cd :  permet d'accéder au répertoire de l'utilisateur |  
| cd - :  permet de retourner au précèdent répertoire. |  
``move'' signifie déplacer ou renommer
| ___________________________________________________________________ |  | mv |  
 
| mv toto.txt toto2.txt : le fichier toto.txt sera renommer en toto2.txt |  
| mv  toto.txt tmp/ : le fichier toto.txt sera déplacé dans le répertoire tmp/ |  
affiche le répertoire courant.
| ___________________________________________________________________ |  | pwd |  
création d'un répertoire.
| ___________________________________________________________________ |  | mkdir |  
 
| mkdir -p /home/seb/tmp/devel/test  permet de créer les répertoires récursivement. |  
suppression d'un répertoire s'il est vide
          si celui-ci n'est pas vide il faut utiliser la commande:
| ___________________________________________________________________ |  | rmdir |  
 
| ___________________________________________________________________ |  | chmod |  
| Permet de changer les permissions sur un fichier ou sur un répertoire. Chaque chiffre est interprété de la même façon: |  | 
| 1 | pour l'exécution |  | 2 | pour l'écriture |  | 3 | pour la lecture |  |  |  |  | On peut cumuler les droits en ajoutant ces chiffres. Ainsi, si le premier chiffre du paramètre est 6, il correspond alors à 4+2 soit la lecture(4) et l'écriture |  |  |  
| chmod 777 fichier | Droits de lecture, d'écriture, d'exécution pour tout le monde. (dangereux). |  |  |  |  | chmod +s fichier | Positionne le bit SUID a un, c'est a dire que si un utilisateur a suffisamment de droits pour pouvoir exécuter ce programme alors le système considérera que c'est le propriétaire du fichier qui l'aura exécuté. |  
 
| Cette faille de sécurité est l'une des plus exploitées par les crackers, |  
|  |  |  |  | 
| Remarque :  Si root utilise la commande  ``chmod +s /bin/cat'' : Alors n'importe quel utilisateur pourra afficher 
          le contenu de n'importe quel fichier du système:  cat  /etc/shadow |  |  |  |  |  
permet de changer l'utilisateur et le groupe propriétaire d'un
          fichier:
| ___________________________________________________________________ |  | chown |  |  |  ``fichier'' appartiendra désormais à l'utilisateur seb et au group users.
          il est également possible de l'appliquer récursivement avec l'option ``-R'':
 
 
La commande ``du'' permet entre autres de connaître la taille d'un répertoire par blocs d'un Ko.
          Néanmoins il est possible3.1 d'y ajouter l'option 
          ``-h''3.2 pour rendre le résultat
          plus explicite.
| ___________________________________________________________________ |  | du |  |  |  
permet de trouver un fichier a partir d'un répertoire donné:
| ___________________________________________________________________ |  | find |  
 
| find / -name ``httpd.conf'':  permet de retrouver le fichier httpd.conf en cherchant 
                        dans tous les répertoires depuis la racine. |  
| find / -user root -a  (perm -4000 -o -perm -2000 )  print :  cette commande permet 
                        d'afficher tous les fichiers ayant les  droits SUID et appartenant a root du système. |  
Beaucoup plus rapide que find, car il utilise une base de donnée pour trouver un fichier.
                        Pour mettre à jour cette base de donnée il suffit en tant que root de lancer la commande:
| ___________________________________________________________________ |  | locate |  
pour chercher un fichier il suffit donc de taper:| updatedb sous Linux ou /usr/libexec/locate.updatedb sous bsd |  
 
| locate httpd.conf pour en trouver l'occurrence. |  
|  |  |  |  | 
| Remarque : Ce programme se situe dans le rpm slocate |  |  |  |  |  
Permet entre autre de rechercher une chaine de caractère dans un fichier:
| ___________________________________________________________________ |  | grep |  
 
grep permet aussi de faire une recherche depuis la sortie standart:| grep -r toto * :  pour faire une recherche en incluant les fichiers des sous répertoires. |  
 
Aussi on pourra lui demander de n'afficher que les résultats qui ne correspondent pas à la recherche demandée avec l'option ``-v'':| ls |grep toto : dans cet exemple nous recherchons un ficher dans le répertoire courant dont le nom contient ``toto''. |  
 
| ls |grep -v toto:  dans cet exemple nous recherchons un ficher dans le répertoire courant dont le nom ne contient pas ``toto''. |  
Montre les principaux processus du système.
| ___________________________________________________________________ |  | top |  
 
Utilitaire permettant de voir les processus actifs du système.
| ___________________________________________________________________ |  | ps |  
 
commande qui permet d'envoyer un signal à un processus:
| ___________________________________________________________________ |  | kill |  
 
| 1 | HUP (hang up) | Re-démarrage |  | 2 | INT (interrupt) |  |  | 3 | QUIT (quit) |  |  | 6 | ABRT (abort) |  |  | 9 | KILL (non-catchable, non-ignorable kill) | force l'arrêt |  | 14 | ALRM (alarm clock) |  |  | 15 | TERM (software termination signal) |  |  
| Exemple: kill -9 pid_processus |  
df  (display free disk space), permet de connaître l'état d'utilisation d'une partition montée.
                          On utilise généralement df avec l'option ``-h'' ("Human-readable" output) pour afficher ces statistiques 
                          en Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte, Exabyte, plutôt qu'en inode moins facile à estimer.
| ___________________________________________________________________ |  | df |  
Permet de monter et de démonter des partitions:
| ___________________________________________________________________ |  | mount/umount |  Ex: mount -t  ext2   /dev/hda7  /home
 
 
| -t ext2 | cette option permet de spécifier le type de partition pour |  |  | une partition Linux (ext2), Windows (vfat),  dos (msdos), |  |  | cdrom(iso9660) .... |  | /dev/hda7 | numéro de la partition ou du volume |  | /home | répertoire dans lequel on va monter la partition c'est |  |  | à dire le répertoire à partir duquel les fichiers seront accessibles. |  Il possible d'ajouter des options supplémentaires tel que:
 
 
| nosuid: | ne permet l'exécution des fichiers suid dans cette |  |  | partition ou ce volume. |  | noexec: | ne permet aucune exécution. |  | ... |  |  
 
|  |  |  |  | 
| ______________________________________ |  |  |  | Pour plus de détails, voir les paragraphes: |  |  |  | Montage d'une image ISO | ...... | 10.8 |  | Systèmes de Fichiers Journalisés | ...... | 3.2 |  | /etc/fstab | ...... | 4.6.6 |  |  |  |  |  
dd - Convertir un fichier en le copiant.                        
                        dd  copie un fichier (par défaut, depuis l'entrée standard
                        vers la sortie standard) en permettant de sélectionner  la
                        taille de bloc, et d'effectuer des conversions.
                        Il  lit  son  entrée bloc par bloc, en utilisant la taille
                        des blocs d'entrée mentionnée (par défaut 512 octets).  Si
                        l'option  bs=octets  est présente, et si aucune autre conversion 
                        que sync, noerror ou notrunc  n'est  indiquée,  il
                        écrit  la  quantité  de  données  lues (qui peut être plus
                        petite que celle demandée) dans un bloc de sortie indépendant.  
                        Ce bloc a exactement la même taille que les données
                        lues, sauf si la conversion sync a  été  réclamée,  auquel
                        cas  les  données sont complétées avec des octets nuls, ou
                        des espaces (voir plus bas).
| ___________________________________________________________________ |  | dd |  
| Options |  |  |  |  |  | if=fichier | Lire les données depuis le fichier  indiqué  plutôt |  |  | que depuis l'entrée standard. |  |  |  |  | of=fichier | Ecrire  les  données  dans le fichier mentionné, et |  |  | non pas sur la sortie  standard.   Si  conv=notrunc |  |  | n'est  pas  indiqué,  le  fichier  est initialement |  |  | tronqué à la taille spécifiée par seek=  (0  octets |  |  | si seek= n'est pas fourni). |  |  |  |  | ibs=nombre | Lire  le  nombre  indiqué d'octets en une fois. Par |  |  | défaut 512. |  |  |  |  | obs=nombre | Écrire le nombre indiqué d'octets en une fois.  Par |  |  | défaut 512. |  |  |  |  | bs=nombre | Lire  et  écrire  le nombre indiqué d'octets en une |  |  | fois. A priori sur ibs et obs.  (et  indiquer  bs |  |  | n'est pas équivalent à indiquer la même valeur pour |  |  | ibs et obs du moins lorsqu'aucune autre  conversion |  |  | que  sync,  noerror  et notrunc n'est indiquée, car |  |  | cela indique que chaque  bloc  d'entrée  doit  être |  |  | copié  dans  un  bloc  de  sortie indépendant, sans |  |  | regrouper les blocs plus courts). |  |  |  |  | cbs=nombre | Indique la taille des  blocs  pour  les  conversions |  |  | block et unblock. |  |  |  |  | skip=nombre | Ignorer  le nombre indiqué de blocs (dont la taille |  |  | est fournie par ibs) au début de la lecture. |  |  |  |  | seek=nombre | Ignorer le nombre indiqué de blocs (dont la  taille |  |  | est fournie par ibs) au début de l'écriture. |  |  |  |  | count=nombre | Copier  seulement  le nombre indiqué de blocs (dont |  |  | la taille est fournie par ibs),  et  non  pas  tout |  |  | jusqu'à la fin du fichier. |  |  |  |  
Commande qui permet de se connecter de façon sécurisée ( les données qui 
          transitent seront cryptées entre les deux machines).
| ___________________________________________________________________ |  | ssh |  
 
Commande qui permet de copier de façon sécurisé un fichier ou un répertoire sur le compte 
          d'une autre machine.
| ___________________________________________________________________ |  | scp |  
 
| scp fichier toto@192.168.0.1:. |  | scp -r répertoire toto@192.168.0.1:. |  |  |  
``tar'' est un utilitaire qui permet de concaténer plusieurs fichiers en un seul, mais ne les compressent pas.
                        C'est pourquoi il est souvent utilisé en parallèle de gzip.
| ___________________________________________________________________ |  | tar et gzip |  Ainsi pour concaténer plusieurs fichiers en un seul il suffit de taper:
 
 
De même pour décompacter ce fichier on tapera:| ``tar cvf fichier.tar répertoire'' ou ``tar cvfz fichier.tar.gz répertoire'' si l'on souhaite en plus compresser ces fichiers |  
 
| ``tar xvf fichier.tar'' dans le cas d'un fichier avec une extension tar. |  
| ``tar xvfz fichier.tar.gz'' dans le cas d'un fichier avec une extension tar.gz. |  
permet de déplacer la racine d'un système.
| ___________________________________________________________________ |  | chroot |  
 
|  |  |  |  | 
| Remarque :  Cette commande est très utilisées pour sécuriser un serveur. En effet,
                        lors d'attaque sur un serveur ftp ou http, une personne mal intentionnée 
                        n'aura aucun moyen de passer root (ce qui est le pire des cas) sur le système
                        en entier, il sera limité au répertoire chrooté. |  |  |  |  |  
Commande utilisée pour modifier les attributs de chaque utilisateur:
| ___________________________________________________________________ |  | vipw |  
 
On trouvera dans l'ordre:|  |  | seb:$2a$06$M:1000:10::0:0::/home/seb:/bin/zsh |  |  |  
le login
le mot de passe crypté
uid : numéro de l'utilisateur
gid : numéro du groupe
...
répertoire HOME de l'utilisateur
et enfin shell par défaut pour l'utilisateur.
                        
 
 |