User Tools

Site Tools


formationsecurite:linux

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: 1)

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:

commande -h
commande --help
man commande
info commande
apropos commande
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:

vi

vi utilise le mode de commande: c'est la ligne en bas, en commençant par deux points “:”

:q

pour quitter

:q!

pour quitter sans sauver Pour affiche les lignes:

set nu

Pour enlever l'affichage des lignes:

set nonu

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:

Exercices

Travailler sur /etc/passwd (après avoir fait une copie dans le répertoire home):

cp /etc/passwd ~
cd
vi passwd

Remplacer la première occurence de l'id de l'utilisateur pas maison

s/forma302/maison/

Remplacer tous les sbin par brol

:%s/sbin/brol/g
Fichiers

Pour voir les répertoires à la racine:

ls -la /

En bleu, les répertoires. Les fichiers cachés par le système commencent par le caractère “.” (point). Pour les afficher:

ls -a

Exercices

Combien de fichiers y a-t-il dans /etc/rc3.d/?

ls -l /etc/rc3.d/ > ~/liste.rc3.d | wc ~/liste.rc3.d
  56  607 3978 /home/linux/liste.rc3.d

55 fichiers

Copier les fichiers dans /etc/X11 dans home

cp -r /etc/X11 ~

Effacer ~/X11/xorg.conf

rm -f  ~/X11/xorg.conf
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
useradd nom

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

[linux@localhost ~]$ ls -l script.sh
-rwxrwxrwx  1 linux root 24 Mar 16 12:03 script.sh

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):

chmod 0754

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

chmod a+rwx

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
ls -l > file

La sortie de l'output est déviée vers un fichier au lieu de s'afficher à l'écran (comportement par défaut)

mail user@gna.com < body.txt

mail prend comme entrée le contenu du fichier body.txt au lieu du clavier (entrée standard)

ps ax | grep sshd

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

mkdir `date +%a%Y%m%d`

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

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

[[Utilisateurs]], groupes et permissions

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
Scripting

En bash

if [condition] then fi

if [ $r test 0 }
  then echo Trop petit
fi echo Trop grand

où test peut être: -le (⇐) -ge (>=) -eq (=) -lt (<) -gt (>) -ne (différent)

while [ $a -ne $r ]
do
  echo Different de $r
done
for mavariable in a b c d
do
  echo $mavariable
done

Exercices

lister les nombres de 1 à 10 et à 5, écrire “nous sommes à la moitié”

#!/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
#!/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
#!/bin/bash
for nombre in 1 2 3 4 "5 Nous sommes à la moitié" 6 7 8 9 10
do
  echo $nombre
done

lister les additions de 1+1=2 jusque 1+10=11

#!/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
#!/bin/bash
for nombre in 1 2 3 4 5 6 7 8 9 10
do
  echo "1 + $nombre = $(($nombre+1))"
done

afficher la table de multiplication pour un nombre donné.

#!/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
#!/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

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)