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)