User Tools

Site Tools


formationsecurite:linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

formationsecurite:linux [2013/01/30 17:52] (current)
Line 1: Line 1:
 +Durant ces 3 jours d'​introduction à Linux, nous allons voir
 +  * installation de Fedora Core 3 (même si dans les notes c'est Fedora Core 2).
 +  * editeur de texte [[vi]]
 +  * manipulations sur les fichiers
 +  * manipulations des utilisateurs
 +  * sécurité sur les fichiers
 +  * automatisation et scripts
 +
 +Le cours est disponible en ligne: ((http://​www.financial-art.be/​Fedora_base_files/​v3_document.htm Linux))
 +
 +Ensuite, nous ferons un module de 3 jours d'​administration comprenant:
 +  * installation de /​[[SlackWare]] 10.1
 +  * les logs
 +  * cron
 +  * les processus
 +  * X Window
 +  * l'​archivage
 +  * installation de packages sous Slackware
 +  * les "​fichiers importants"​
 +  * umask
 +  * les ACLs
 +  * compilation du noyau
 +
 +Et nous terminerons par un module réseau.
 +
 +15/03/05
 +
 +
 +== Introduction ​ ==
 +=== Distributions ===
 +
 +Fedora: vient de Red Hat (gestionnaire de paquets: RPM)
 +Gentoo: source based
 +Mandrake: pour end-user (desktop)
 +Slackware: pas de gestion de dépendances
 +
 +=== Noyau ===
 +
 +numéros de version
 +
 +2.x.y
 +2 = version majeure
 +x = version mineure
 +y = corrections
 +
 +== Installation de Fedora Core 3 ==
 +
 +On suit les instructions:​
 +<​enter>​ à la ligne boot
 +Partition Druid:
 +  * 100 Mo pour /boot
 +  * 1024 Mo pour la swap
 +  * 10000 Mo pour /
 +
 +Créer un utilisateur,​ s'​identifier
 +
 +== Aide sous Linux ==
 +Pour ouvrir un terminal, dans le menu: Applications -> System Tools -> Terminal
 +
 +Pour obtenir de l'aide sur une commande:
 +<​code>​commande -h
 +commande --help
 +man commande
 +info commande
 +apropos commande</​code>​
 +
 +== Editeur de texte ==
 +[[vi]] est disponible sur toutes les distributions. C'est l'​éditeur que nous utiliserons,​ enfin presque: nous travaillerons avec vim (Vi IMproved).
 +
 +Pour le lancer:
 +<​code>​vi</​code>​
 +
 +[[vi]] utilise le mode de commande: c'est la ligne en bas, en commençant par deux points ":"​
 +<​code>:​q</​code>​
 +pour quitter
 +<​code>:​q!</​code>​
 +pour quitter sans sauver
 +Pour affiche les lignes:
 +<​code>​set nu</​code>​
 +Pour enlever l'​affichage des lignes:
 +<​code>​set nonu</​code>​
 +N.B: on peut écrire //se// au lieu de //set//
 +Pour se déplacer dans le texte, soit utiliser les flèches, soit utiliser j, k, h, l.
 +Pour entrer en mode insertion, taper "​i"​.
 +
 +Pour copier une ligne (yank): yy
 +Pour coller la ligne en-dessous de la ligne courante (paste): p
 +Pour rechercher le mot toto: /toto
 +Pour aller à l'​occurence suivante (next): n
 +Pour aller à l'​occurence précédente:​ N
 +undo: u
 +redo : ctrl+r
 +aller à la dernière ligne du fichier: G
 +
 +Liens:
 +  * ((http://​www.indiana.edu/​~ucspubs/​b104/​ Vi: A Unix text editor))
 +=== Exercices ===
 +
 +Travailler sur /etc/passwd (après avoir fait une copie dans le répertoire home):
 +<​code>​cp /etc/passwd ~
 +cd
 +vi passwd</​code>​
 +
 +Remplacer la première occurence de l'id de l'​utilisateur pas maison
 +<​code>​s/​forma302/​maison/</​code>​
 +Remplacer tous les sbin par brol
 +<​code>:​%s/​sbin/​brol/​g</​code>​
 +
 +
 +== Fichiers ==
 +
 +Pour voir les répertoires à la racine:
 +<​code>​ls -la /</​code>​
 +En bleu, les répertoires.
 +Les fichiers cachés par le système commencent par le caractère "​."​ (point).
 +Pour les afficher:
 +<​code>​ls -a</​code>​
 +
 +=== Exercices ===
 +Combien de fichiers y a-t-il dans /​etc/​rc3.d/?​
 +<​code>​ls -l /etc/rc3.d/ > ~/​liste.rc3.d | wc ~/​liste.rc3.d
 +  56  607 3978 /​home/​linux/​liste.rc3.d</​code>​
 +55 fichiers
 +
 +Copier les fichiers dans /etc/X11 dans home
 +<​code>​cp -r /etc/X11 ~</​code>​
 +Effacer ~/​X11/​xorg.conf
 +<​code>​rm -f  ~/​X11/​xorg.conf</​code>​
 +
 +
 +== Liens ==
 +
 +C'est presque comme les raccourcis [[Windows]].
 +
 +lien physique (hard): 2 pointeurs vers le même emplacement sur le disque dur (attention: sur une même partition)
 +Ne prends pas de place sur le disque.
 +
 +lien symbolique (sym): un raccourci qui pointe vers un fichier. Prends un peu de place sur le disque. Le lien est statique: si on change de place le fichier vers lequel il pointe, on casse le lien symbolique.
 +
 +
 +== Les utilisateurs ==
 +
 +<​code>​useradd nom</​code>​
 +Sans arguments, il n'y a pas de mot de passe, ni de home, ni de login
 +
 +
 +== Les droits ==
 +
 +r: read
 +w: write
 +x: execute
 +
 +il y a les droits pour
 +le propriétaire (owner)
 +le groupe
 +les autres
 +
 +<​code>​[linux@localhost ~]$ ls -l script.sh
 +-rwxrwxrwx ​ 1 linux root 24 Mar 16 12:03 script.sh</​code>​
 +
 +Comment interpréter:​ drwxr-xr-x?
 +-: script.sh est un fichier
 +r: le propriétaire peut lire le fichier (read)
 +w: le propriétaire peut modifier le fichier (write)
 +x: le propriétaire peut exécuter le fichier (par exemple, si c'est un script ou un binaire) (execute)
 +r: le groupe peut lire le fichier
 +-: le groupe ne peut pas modifier le fichier
 +x: le groupe peut exécuter le fichier
 +r: les autres peuvent lire le fichier
 +-: les autres ne peuvent pas modifier le fichier
 +x: les autres peuvent exécuter le fichier
 +
 +Comment changer les droits?
 +A l'aide de la commande chmod (change mode):
 +<​code>​chmod 0754</​code>​
 +0: s'​applique au sticky bit
 +7: droits de l'​utilisateur (propriétaire)
 +5: droits du groupe
 +4: droits des autres
 +
 +Les valeurs sont:
 +4: r
 +2: w
 +1: x
 +donc: 3 = wx, 5 = rx, 6 = rw et 7 =  rwx
 +
 +chmod 0754 donne les droits rwx au propriétaire,​ r-x au groupe et r-- aux autres
 +<​code>​chmod a+rwx</​code>​
 +a: all
 +on peut aussi mettre:
 +u: user (owner)
 +g: group
 +o: others
 ++: ajouter les droits
 +-: retirer les droits
 +r: read
 +w: write
 +x: execute
 +
 +chmod a+rwx
 +donne tous les drois à tout le monde.
 +
 +
 +== Automatisation et scripts ==
 +<​code>​ls -l > file</​code>​
 +La sortie de l'​output est dé[[vi]]ée vers un fichier au lieu de s'​afficher à l'​écran (comportement par défaut)
 +<​code>​mail user@gna.com < body.txt</​code>​
 +mail prend comme entrée le contenu du fichier body.txt au lieu du clavier (entrée standard)
 +<​code>​ps ax | grep sshd</​code>​
 +pipe: la sortie du process de gauche est envoyée à l'​entrée du process de droite.
 +
 +=== Interprétation des résultats d'une commande ===
 +<​code>​mkdir `date +%a%Y%m%d`</​code>​
 +
 +Le shell va d'​abord exécuter ce qui se trouve entres les reverse quotes avant d'​exécuter ce qui est en-dehors.
 +Dans l'​exemple ci-dessus, il va créer un répertoire portant comme nom la date courante.
 +
 +=== wildcards ===
 +
 +*: remplace tous les caractères
 +?: remplace un caractère
 +[a-z]: toutes les lettres minuscules
 +
 +
 +== Exercice récapitulatif des commandes Linux ==
 +
 +=== Fichier ===
 +<​code>​cd
 +mkdir rep1
 +touch rep1/fich1
 +echo "​coucou"​ >> rep1/fich1
 +mkdir rep2
 +mkdir `date +%s`
 +touch rep2/fich2
 +cp rep1/fich1 rep2
 +cp rep2/fich2 rep1
 +mv rep1/fich1 ./
 +mv rep1/fich2 rep1/fich3
 +ln rep2/fich3 lien1
 +ln -s rep2/fich2 lien2</​code>​
 +
 +=== [[Utilisateurs]],​ groupes et permissions ===
 +<​code>​su -
 +useradd Tintin
 +passwd Tintin
 +useradd Haddock
 +passwd Haddock
 +mkdir /home/BD
 +groupadd Lotus-bleu
 +usermod -G Lotus-bleu Tintin
 +usermod -G Lotus-bleu Haddock
 +usermod -d /home/BD Tintin
 +usermod -d /home/BD Haddock
 +chgrp Lotus-bleu /home/BD
 +chmod g+rwx /home/BD
 +chmod a-r /​home/​forma312/​rep1/​fich3
 +chmod a+r /​home/​forma312/​rep1/​fich3
 +chown Haddock.Lotus-bleu /​home/​forma312/​rep1/​fich3
 +echo "alias rm='rm -i'"​ >> /​etc/​bashrc</​code>​
 +
 +
 +== Scripting ==
 +En [[bash]]
 +
 +if [condition] then
 +fi
 +
 +<​code>​if [ $r test 0 }
 +  then echo Trop petit
 +fi echo Trop grand</​code>​
 +
 +où test peut être:
 +-le (<=)
 +-ge (>=)
 +-eq (=)
 +-lt (<)
 +-gt (>)
 +-ne (différent)
 +
 +<​code>​while [ $a -ne $r ]
 +do
 +  echo Different de $r
 +done</​code>​
 +
 +<​code>​for mavariable in a b c d
 +do
 +  echo $mavariable
 +done</​code>​
 +
 +=== Exercices ===
 +
 +lister les nombres de 1 à 10 et à 5, écrire "nous sommes à la moitié"​
 +<​code>#​!/​bin/​bash
 +for nombre in 1 2 3 4 5 6 7 8 9 10
 +do
 +  echo $nombre
 +  if [ $nombre -eq 5 ]; then echo "Nous sommes à la moitié"​
 +  fi
 +done</​code>​
 +<​code>#​!/​bin/​bash
 +for nombre in 1 2 3 4 5 6 7 8 9 10
 +do
 +  if [ $nombre -eq 5 ]
 +    then echo "​$nombre Nous sommes à la moitié"​
 +    else echo $nombre
 +  fi
 +done</​code>​
 +<​code>#​!/​bin/​bash
 +for nombre in 1 2 3 4 "5 Nous sommes à la moitié"​ 6 7 8 9 10
 +do
 +  echo $nombre
 +done</​code>​
 +
 +lister les additions de 1+1=2 jusque 1+10=11
 +<​code>#​!/​bin/​bash
 +for nombre in 1 2 3 4 5 6 7 8 9 10
 +do
 +  somme=`expr $nombre + 1`
 +  echo "1 + $nombre = $somme"​
 +done</​code>​
 +<​code>#​!/​bin/​bash
 +for nombre in 1 2 3 4 5 6 7 8 9 10
 +do
 +  echo "1 + $nombre = $(($nombre+1))"​
 +done</​code>​
 +
 +afficher la table de multiplication pour un nombre donné.
 +<​code>#​!/​bin/​bash
 +echo "​entrer un nombre"​
 +read n
 +for i in 1 2 3 4 5 6 7 8 9 10
 +do
 + echo $i x $n = $(($i*$n))
 +done</​code>​
 +<​code>#​!/​bin/​bash
 +echo "​entrer un nombre"​
 +read n
 +i=1
 +while [ $i -lt 11 ]
 +do
 +  echo "$n * $i" > calc
 +  echo "$n x $i = `bc < calc`"
 +  i=$(($i+1))
 +done</​code>​
 +
 +Jeu qui génère un nombre aléatoire (0-1024) et qu'il faut trouver (il dit plus petit ou plus grand).
 +
 +Création des utilisateurs en masse avec mot de passe égal au nom d'​utilisateur.
 +
  
formationsecurite/linux.txt · Last modified: 2013/01/30 17:52 (external edit)