Gestion de laccès avec Linux-INTRO-juin 2012.pdf

37
EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès Par Sébastien Ross juin 2012 Page 1 sur 37 Correction par Gilles Leblanc mai 2012 Introduction au système Linux (Système de base et sécurité) Sébastien Ross EMICA de Montréal Pré-requis : Machine virtuelle ubuntuserver (Serveur Ubuntu 10.04) Machine virtuelle XP-XClient (XP Pro membre du domaine emica.local)

Transcript of Gestion de laccès avec Linux-INTRO-juin 2012.pdf

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 1 sur 37 Correction par Gilles Leblanc mai 2012

Introduction au système Linux

(Système de base et sécurité)

Sébastien Ross

EMICA de Montréal

Pré-requis :

Machine virtuelle ubuntuserver (Serveur Ubuntu 10.04)

Machine virtuelle XP-XClient (XP Pro membre du domaine emica.local)

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 2 sur 37 Correction par Gilles Leblanc mai 2012

Table des matières INTRODUCTION AU SYSTÈME LINUX .................................................................................................................................... 4

HISTOIRE ............................................................................................................................................................................. 4

LA CONSOLE ........................................................................................................................................................................ 5

LA LIGNE .............................................................................................................................................................................. 6

EXERCICE : IDENTIFIER LES SECTIONS DE LA LIGNE ................................................................................................................................ 6

COMMANDES DE BASE ........................................................................................................................................................ 7

MAN ET HELP .............................................................................................................................................................................. 7

LS .............................................................................................................................................................................................. 8

PWD .......................................................................................................................................................................................... 9

CD ............................................................................................................................................................................................. 9

MKDIR ...................................................................................................................................................................................... 12

CP ........................................................................................................................................................................................... 14

MV .......................................................................................................................................................................................... 15

CAT .......................................................................................................................................................................................... 17

LESS ......................................................................................................................................................................................... 17

TAIL ......................................................................................................................................................................................... 18

RM .......................................................................................................................................................................................... 19

RMDIR ...................................................................................................................................................................................... 19

NANO ....................................................................................................................................................................................... 21

HIERARCHIE DES REPERTOIRES SOUS LINUX ...................................................................................................................... 23

LA RACINE / ............................................................................................................................................................................... 23

/BIN ......................................................................................................................................................................................... 23

/BOOT ...................................................................................................................................................................................... 23

/DEV ........................................................................................................................................................................................ 23

/ETC ........................................................................................................................................................................................ 23

/HOME ..................................................................................................................................................................................... 24

/LIB ......................................................................................................................................................................................... 24

/MNT ....................................................................................................................................................................................... 24

/PROC ...................................................................................................................................................................................... 24

/ROOT ...................................................................................................................................................................................... 24

/SBIN ....................................................................................................................................................................................... 24

/SYS ......................................................................................................................................................................................... 24

/TMP ....................................................................................................................................................................................... 24

/USR ........................................................................................................................................................................................ 24

/VAR ........................................................................................................................................................................................ 25

LA SÉCURITÉ DES FICHIERS SOUS LINUX ............................................................................................................................. 26

PROPRIETAIRE ET GROUPES (USERS AND GROUPS) ............................................................................................................................. 26

LES PERMISSIONS ........................................................................................................................................................................ 28

CRÉER/SUPPRIMER UN USAGER UNIX (ADDUSER, DELUSER) ................................................................................................................ 32

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 3 sur 37 Correction par Gilles Leblanc mai 2012

CRÉER/SUPPRIMER UN GROUPE UNIX (ADDGROUP, DELGROUP) .......................................................................................................... 34

GÉRER LES GROUPES ET ET LES USAGERS UNIX (USERMOD, GROUPS, DELUSER, MEMBERS) ........................................................................ 35

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 4 sur 37 Correction par Gilles Leblanc mai 2012

Introduction au système Linux

Vous trouverez ici une courte introduction au système Linux. Console, ligne de commande et autres

petits utilitaires sont au programme. Alors bonne lecture !

Histoire

Au début des années 90, un jeune étudiant finlandais Linus Benedict Torvaldsa a voulu mettre au point

son propre système d’exploitation. L’idée consistait à développer un système de type Unix fonctionnant

sur les processeurs d’architecture 80386 (si vous préférez sur un pc !). Andrew Tanenbaum fut le

créateur de Minix, un système de base pouvant fonctionner sur les 80386, et c’est dans cette continuité

que Linus B. Torvaldsa a décidé d’améliorer le projet en étendant les nombreuses possibilités de Minix :

c’est la naissance de Linux. La mise à disposition du noyau (cœur du système) numéroté 0.1 à eu lieu en

1991, mais c’est seulement en 1992 que la version véritablement stable a vu le jour. L’originalité de ce

système repose d’une part sur le fait qu’il est non commercial et d’autre part qu’un grand nombre de

programmeurs (développeurs) participe à ce projet.

Aujourd’hui, beaucoup de distributions Linux existent : Debian, Fedora, Freebsd, Gentoo, Knoppix,

Mandriva(fusion de Conectiva et MandrakeSoft), Redhat, Suse, Slackware, Ubuntu ,..., etc. Vous n’avez

que l’embarras du choix ! À noter que si vous débutez sous Linux, je vous conseille fortement l’essai

d’une Mandrake ou d’une Knoppix (elle ne nécessite même pas d’installation !)

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 5 sur 37 Correction par Gilles Leblanc mai 2012

La console

La console ou terminal est un environnement texte dans lequel un utilisateur demande l’exécution de

programmes ou fait des requêtes. Il

existe plusieurs types de console :

terminal, xterm, konsole, gnome-

console, les terminaux virtuels, etc...

Les terminaux virtuels sont obtenus

à l’aide des combinaisons

CTRL+ALT+F1, CTRL+ALT+F2,

CTRL+ALT+F3, etc ...La console

présentée dans la figure suivante est

celle d’un serveur Ubuntu.

1. Exercice : Ouverture de session

Objectif : Ouvrir plusieurs sessions locales sur un serveur Ubuntu

À faire ! Comment faire ? Fait

Ouvrir une session sur TTY2 avec Emica

Ouvrir une session sur TTY3 avec client 1

Résultat escompté : Ouverture de plusieurs sessions simultanées

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 6 sur 37 Correction par Gilles Leblanc mai 2012

La ligne

La ligne est ce qu’on appelle le prompt, emica est l’utilisateur (user) et ubuntuserver est le nom de la

machine.

Le tilde ˜ représente le répertoire courant de l’utilisateur emica, en l’occurrence /home/emica autrement

dit le prompt nous indique clairement dans quel répertoire nous sommes situés, ici nous sommes dans

/home/emica/perso.

Quant au dollar $, il signifie que nous sommes sous le contrôle de l’interpréteur de commande : le shell

(coquille) BASH. Alors le BASH c’est quoi au juste ? Ce n’est rien d’autre qu’un programme /bin/bash

qui va interpréter les commandes que vous allez taper et les exécuter si elles ne comportent pas d’erreur.

En particulier, le BASH respecte la casse, une minuscule n’est pas une majuscule en occurrence toto ce

n’est pas TotO !

J’évoquais dans le paragraphe précédent le tilde ˜ représentant /home/emica, évidemment si le user jean

ouvre une console, le tilde représenté est alors équivalent à /home/jean. Chaque user possède un

répertoire dans "la maison" /home, une manière imagée de comprendre cela serait de dire que tout les

utilisateurs vivent dans /home et ils possèdent chacun leur "chambre", celle de emica /home/emica, celle

de jean /home/jean. Évidemment, jean ne peut pas rentrer dans la chambre de emica puisque la chambre

de ce dernier est privée, elle lui est propre et vice versa.

Exercice : Identifier les sections de la ligne

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 7 sur 37 Correction par Gilles Leblanc mai 2012

Commandes de base

Man et help

C’est la commande à ne pas oublier, c’est l’aide ultime !!! man c’est l’abréviation de manual. En

pratique si vous faites ceci, la console vous renverra un tas d’information sur la commande ls

emica@ubuntuserver:~$ man ls

. On pourra également faire appel à une aide plus condensée en utilisant help comme suit :

emica@ubuntuserver:~$ ls -–help

2. Exercice : Consultation de l’aide

Objectif : Consulter l’aide sur les commandes Linux

À faire ! Comment faire ? Fait

Comment trouver l’option pour afficher le contenu d’un répertoire

au long avec la commande « ls »

ls --help

Comment consulter le manuel de la commande « cal », servant à

afficher un calendrier?

man cal

Résultat escompté : Affichage de l’aide des commandes ls et cal

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 8 sur 37 Correction par Gilles Leblanc mai 2012

ls

ls permet de lister le contenu d’un répertoire

Il est possible d’utiliser plusieurs options avec la commande ls je vous renvoie donc au manuel ! On

retiendra par exemple l’option –l

Quelques explications :

total 24 signifie que le répertoire data occupe 24 blocs sur le disque

la première colonne fournit des informations sur les droits ;

la seconde représente le nombre de liens pointant sur ce fichier ;

la suivante donne le nom du propriétaire du fichier.

la quatrième indique le nom du groupe qui peut accéder au fichier selon les actions autorisées

par le propriétaire ; si vous vous rappelez, c’est l’histoire du partage de fichier entre jean et

emica

la cinquième indique la taille du fichier en octets.

la sixième donne la date et l’heure de la dernière modification du fichier.

la dernière le nom du fichier.

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 9 sur 37 Correction par Gilles Leblanc mai 2012

pwd

La commande pwd permet de retrouver dans quel répertoire je me trouve

cd

cd pour Change Directory ou si vous préférez Changement de Répertoire.

Déplacement à la racine du système

Déplacement dans le répertoire var de la racine

Déplacement dans le répertoire courant perso (à partir de /home/emica)

Déplacement dans le répertoire /usr/bin

Reculer d’une branche vers la racine

Déplacement dans mon répertoire personnel

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 10 sur 37 Correction par Gilles Leblanc mai 2012

Déplacement dans le répertoire personnel de l’utilisateur emica

! Consultez au besoin la vidéo liée à ces commandes disponible dans le cours Moodle

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 11 sur 37 Correction par Gilles Leblanc mai 2012

3. Exercice : Navigation dans le système de fichier

Objectif : Naviguer dans les répertoires du système de fichier. Consulter le contenu des répertoires. (ls – pwd – cd)

À faire ! Comment faire ? Fait

À partir de votre « home directory »… …

Aller dans le répertoire var cd /var

Vérifiez si vous y êtes pwd

Aller à la racine cd / ou cd ..

Vérifiez si vous y êtes pwd

Aller dans votre « home directory » cd

Vérifiez si vous y êtes pwd

Aller dans /home en évitant d’utiliser la commande : « cd

/home »

cd ..

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 12 sur 37 Correction par Gilles Leblanc mai 2012

mkdir

La commande mkdir permet de créer un réperoire (Make Directory). mkdir photos créera le répertoire

photos dans le repértoire /home/emica

! Consultez au besoin la vidéo liée à ces commandes disponible dans le cours Moodle

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 13 sur 37 Correction par Gilles Leblanc mai 2012

4. Exercice : Créer une arborescence de fichiers

Objectif : Créer une arborescence de fichiers (mkdir - tree)

À faire Comment faire ?

F

a

i

t

Dans votre répertoire personnel…

Créer l’architecture de dossier suivante :

Fruits / pommes /rouges

/vertes

/granny smith

/bananes

Vérifier le tout

cd

mkdir fruits

cd fruits

mkdir bananes pommes

cd pommes

mkdir rouges vertes « granny smith »

cd ..

tree fruits

Détruisez l’architecture créée (attention !!!) rm –Rf fruits

La recréer en une ligne seulement… (défi)

mkdir –p fruits/bananes

fruits/pommes/rouges

fruits/pommes/vertes

fruits/pommes/granny\ smith

Résultat escompté :

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 14 sur 37 Correction par Gilles Leblanc mai 2012

cp

La commande cp (copy) permet de copier des fichiers. Copier le fichier fichier1.doc dans le même

répertoire et de le nommer fichier2.doc (Duplication). Voir ce qui suit.

Copier le fichier2.doc dans le répertoire /comp

Copier TOUS les fichiers du répertoire exercice4 dans le répertoire exercice3

Copier tous les fichiers du répertoire exercice4, y compris les sous-répertoires, dans le répertoire

exercice3

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 15 sur 37 Correction par Gilles Leblanc mai 2012

mv

La commande mv (move) permet de renommer un fichier ou de le déplacer dans un répertoire. Ainsi la

commande suivante renommera le fichier1.doc comme fichier1b.doc

Pour déplacer le fichier fichier1b.doc dans le répertoire /home/emica/perso, on procède comme suit :

! Consultez au besoin la vidéo liée à ces commandes disponible dans le cours Moodle

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 16 sur 37 Correction par Gilles Leblanc mai 2012

5. Exercice : Copie et déplacement de fichiers

Objectif : Copier et déplacer des fichiers et des arborescences. (cp, mv)

À faire ! Comment faire ? Fait

Dans votre répertoire personnel

Créer un dossier nommé pratique

Aller dans le dossier pratique

Faire ces commandes :

touch fichier1

touch fichier2

touch fichier3

Créer cette arborescence :

Copier fichier1 dans teleromans cp fichier1

television/teleromans

Déplacer fichier2 dans radio mv fichier2 radio

Renommer fichier3 comme fichier3b mv fichier3 fichier3b

Copier le fichier3b dans jeunesse cp fichier3b

television/jeunesse

Renommer radio pour internet mv radio internet

Résultat escompté :

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 17 sur 37 Correction par Gilles Leblanc mai 2012

cat

La commande cat permet d’afficher le contenu d’un fichier…

Si on a 2 fichiers fichier1.txt et fichier2.txt, cette commande renvoie le contenu des 2 fichiers à la file

l’un de l’autre, on parle de concaténation ! Évidemment, on peut appliquer cela à plus de 2 fichiers.

less

Lorsque les fichiers sont de grande taille, on voit clairement que la commande cat n’est plus appropriée,

puisque le texte affiché défile trop rapidement. La commande less permet de faire défiler le contenu du

fichier à son rythme, à l’aide des flèches haut et bas! On peut aussi utiliser la commande « cat | more »

mais elle est moins flexible.

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 18 sur 37 Correction par Gilles Leblanc mai 2012

tail

Lorsqu’on doit lire la fin d’un fichier, tail est tout indiqué. Il suffit donc de l’appeler et votre vœu sera

exaucé.

Utilisation :

tail fichierlong.txt (10 dernières lignes, par défaut)

tail –n 15 fichierlong.txt (les 15 dernières lignes)

! Consultez au besoin la vidéo liée à ces commandes disponible dans le cours Moodle

6. Exercice : Affichage du contenu des fichiers texte

Objectif : Afficher le contenu d’un fichier texte (cat, less, tail)

À faire ! Comment faire ? Fai

t

Afficher le contenu du fichier /etc/samba/smb.conf avec la

commande « cat »

cat /etc/samba/smb.conf

Afficher le contenu du fichier /etc/samba/smb.conf avec la

commande « less ».

Notez la différence ici :

Less /etc/samba/smb.conf

Afficher les 15 dernières lignes du fichier log

« /var/log/samba/log.nmdb »

tail –n 15

/var/log/samba/log.nmdb

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 19 sur 37 Correction par Gilles Leblanc mai 2012

rm

rm (Remove), cette commande permet d’effacer des fichiers. Elle effacera le fichier fichier3.txt.

On peut également effacer le contenu d’un répertoire :

La commande « rm –R exercice3/» effacera tous les fichiers et sous répertoire exercice3, ainsi que le

répertoire exercice3 lui même.

rmdir

rmdir (Remove Directory), cette commande d’effacer des répertoire vides

! Consultez au besoin la vidéo liée à ces commandes disponible dans le cours Moodle

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 20 sur 37 Correction par Gilles Leblanc mai 2012

7. Exercice : Effacement de fichiers

Objectif : Effacer des fichiers et des arborescences (rm, rmdir)

À faire ! Comment faire ? Fait

Dans le répertoire pratique dans votre répertoire

personnel…

Supprimer tous les fichiers1. … rm –R fichier1*

Supprimer le répertoire television rm –R television

Supprimer le répertoire internet rm –R internet

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 21 sur 37 Correction par Gilles Leblanc mai 2012

nano

Nano est un éditeur de texte simple. Nous l’utiliserons dans le cours pour modifier les fichiers

suivants :

/data/samba/netlogon/logon.cmd

/etc/samba/smb.conf

Nous utiliserons seulement les commandes suivantes :

CTRL-X Quitter (enregistrer = y…)

ALT-6 Copie la ligne

CTRL-U Colle la ligne

CTRL-O Enregistre les modifications sans quitter

CTRL-G Aide (un peu complexe… j’avoue)

CTRL-6 ou ALT-M-A Place une marque ici pour sélectionner plusieurs lignes avec les flèches

haut et bas. (il faut copier avec alt-6 puis coller plusieurs lignes avec ctrl-U)

Enregistrer

Quitter

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 22 sur 37 Correction par Gilles Leblanc mai 2012

8. Exercice : Éditer un fichier

Objectif : Éditer, sauvegarder et modifier un fichier texte avec nano

À faire ! Comment faire ? Fait

Dans /data/exercice1, créer un fichier

nommé poeme.txt avec nano

cd /data/exercice1

nano poeme.txt

Écrire 4 lignes et sauvegarder le fichier CRTL-O

Ajouter une ligne en bas du fichier et

sauvegarder le fichier sous le nom

poeme2.txt

CTRL-O - changer le nom et confirmer

Copier et coller les quatre lignes trois fois

(pour un total de quatre blocs de quatre

lignes)

Placer le curseur en haut et CTRL-6

Avec les flèches, sélectionner les

lignes à copier

Copier avec ALT-6

Placer le curseur à l’endroit ou vous

désirez coller les lignes

Coller avec CRTL-U

Sauvegarder votre poeme2.txt et quitter CTRL-O puis CTRL-X

Afficher les 8 dernières lignes de votre fichier

poeme2.txt

Renommer le fichier poeme2.txt pour

poemefinal.txt

Copier le fichier poemefinal.txt dans votre

répertoire personnel

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 23 sur 37 Correction par Gilles Leblanc mai 2012

Hiérarchie des répertoires sous Linux

Source : http://www.math-linux.com/spip.php?article24

Nous allons voir dans cet article l’organisation ou si vous préférez la hiérarchie des répertoires sous

Linux. On y expose les particularités de chacun d’entre eux ainsi que le rôle joué par les répertoires au

sein du système. Bien que ce contenu ne soit pas capital pour la réussite de

La racine /

La racine contient évidemment tout les répertoires que nous allons étudier.

/bin

Le répertoire /bin (binaries) contient des exécutables spécifiques au mode utilisateur.

/boot

/boot contient les fichiers nécessaires au démarrage ainsi que des fichiers de configuration des

gestionnaires de démarrage (boot loader) comme grub par exemple./dev

/dev contient des fichiers spéciaux appelés file device qui se référent aux périphériques du système.

Quelques exemples :

le premier lecteur de disquette est appelé /dev/fd0

le second lecteur de disquette est appelé /dev/fd1

le disque maître sur le contrôleur IDE primaire est appelé /dev/hda

le disque esclave sur le contrôleur IDE primaire est appelé /dev/hdb

la première partition du disque maître sur le contrôleur IDE primaire est appelée /dev/hda1

/etc

/etc contient des répertoires et des fichiers de configuration des programmes. On y retrouve par

exemples les répertoires cups, X11 etc. L’extension des fichiers de configuration est en général .conf

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 24 sur 37 Correction par Gilles Leblanc mai 2012

/home

/home c’est le répertoire utilisateurs. Il contient des répertoires propres à chaque utilisateur du système.

C’est l’administrateur (root) qui crée ces répertoires.

/lib

/lib contient les librairies nécessaires à l’amorçage du système et à l’exécution de commandes.

/mnt

/mnt pour mount, ce répertoire contient des répertoires appelés points de montage. Ce sont des

répertoires qui pointent vers les fichiers de périphériques, tels que les cdrom, les disques durs externes,

ou des systèmes de fichiers comme des partitions ntfs, dos, etc .

/proc

Le répertoire /proc donne des informations sur le système et le noyau. /root

C’est le répertoire personnel de l’administrateur. En général, on n’ouvre jamais de session en tant que

root. Par défaut, ce n’est pas possible d’ouvrir une session « root ».

/sbin

Le répertoire /sbin contient des exécutables spécifiques au système.

/sys

Le répertoire /sys permet à l’administrateur de l’ordinateur d’activer et de désactiver des fonctions du

noyau. Ce répertoire fournit également des informations sur le système.

/tmp

/tmp contient les fichiers temporaires issus des processus en cours d’exécution.

/usr

/usr (unix system ressource) est un répertoire important du système Linux. Il contient des données et

des programmes communs aux utilisateurs.

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 25 sur 37 Correction par Gilles Leblanc mai 2012

/var

/var contient les journaux d’activités du système appelés logs. Ces fichiers contiennent les dates d’accès

de certains programmes, les tâches journalières exécutées par crontab y sont également reportées.

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 26 sur 37 Correction par Gilles Leblanc mai 2012

La sécurité des fichiers sous Linux

Propriétaire et groupes (users and groups)1

Par la propriété d'un fichier, on désigne à quel utilisateur appartient le fichier, qui est-ce qui le possède.

À partir de cette possession (ou non), il sera ensuite possible de définir des permissions d'accès sur le

fichier.

La possession d'un fichier se définit sur trois catégories :

1- l'utilisateur propriétaire du fichier (u). La plupart du temps, il s'agit du créateur du fichier. Il est à noter qu'un fichier créé par une commande exécutée à l'aide de sudo appartiendra à l'utilisateur root ; on sera potentiellement amené à devoir changer le propriétaire de ce fichier afin de s’en servir avec son propre compte utilisateur.

2- le groupe propriétaire du fichier (g). Si un utilisateur est membre d'un certain groupe qui possède la propriété d'un fichier, l'utilisateur aura aussi certaines permissions particulières sur ce fichier.

-3-les autre, world, le reste du monde(o). Bref, tout un chacun n'étant ni propriétaire du fichier, ni membre du groupe propriétaire du fichier.

Faisons une analogie avec les voitures. Le propriétaire serait la personne au nom de laquelle la voiture

est immatriculée. Le groupe propriétaire est l'ensemble des personnes qui sont inscrites en tant que

conducteurs secondaires de la voiture chez l'assureur. Enfin, les autres correspond à toutes les autres

personnes n'étant ni détenteur de l'immatriculation ni inscrites en tant que conducteurs de la voiture chez

l'assureur.

Vous devez être capable de :

Modifier seulement le propriétaire (user) d’un fichier/dossier (chown user dossier/)

Modifier seulement le groupe d’un fichier/dossier (chgrp group dossier/)

Modifier le propriétaire ET le groupe d’un fichier/dossier (chown user.group dossier/)

Appliquer les changements dans toute l’arborescence (chown -R user.group dossier/)

9. Exercice : La sécurité des fichiers (propriétaires et groupe)

Objectif : Condulter et modifier le propriétaire et le groupe de répertoires et de fichiers (chown - chgrp – tree – ls – sudo)

1 http://doc.ubuntu-fr.org/droits

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 27 sur 37 Correction par Gilles Leblanc mai 2012

À faire ! Comment faire ? Fait

Dans le répertoire /data, créez un répertoire du nom de

ex_sec et y accéder.

cd /data

mkdir ex_sec

cd ex_sec

Confirmez que votre répertoire de travail est bien le

/data/ex_sec

Pwd

Créez trois répertoires sous ex_sec, nommés un, deux et

trois. Dans ces répertoires, créer des fichiers texte vides

(texte1.txt, texte2.txt, texte3.txt). Confirmez votre

arborescence avec la commande tree.

mkdir un deux trois

touch un/fichier1.txt

touch deux/fichier2.txt

touch trois/fichier3.txt

tree

Afficher la sécurité (propriétaire, groupe) des répertoires un,

deux et trois à l’aide de ls et de tree.

ls -l

tree -ug

Le propriétaire du répertoire un devient user1 sudo chown user1 un

Le groupe du répertoire deux devient gr_logiciels_rw sudo chgrp gr_logiciels_rw

deux

Le propriétaire du répertoire trois devient user2 et leur

groupe gr_logiciels_rw.

sudo chown

user2.gr_logiciels_rw trois

Le propriétaire du répertoire et de ses enfants (sous-

répertoires) trois devient user2 et leur groupe

gr_logiciels_rw.

sudo chown -R

user2.gr_logiciels_rw trois

Afficher la nouvelle sécurité des fichiers et répertoires. tree -ug

Résultat escompté :

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 28 sur 37 Correction par Gilles Leblanc mai 2012

Les permissions2

Les permissions désignent ce que les diverses catégories d'utilisateurs (propriétaire d'un fichier,

membres du groupe propriétaire d'un fichier et le reste du monde) ont l'autorisation d'effectuer sur un

fichier donné. Par exemple, une catégorie d'utilisateurs peut avoir accès en lecture et écriture à un

fichier, alors qu'une autre catégorie a accès en lecture seulement à ce même fichier.

Les permissions se définissent sur trois niveaux :

1. la lecture d'un fichier : cette permission est nécessaire pour pouvoir accéder au contenu d'un fichier (écouter une piste audio, visionner un film, lire un texte, naviguer à l'intérieur d'un répertoire…). Cette permission est notée r (pour read, lire).

2. l'écriture dans un fichier : cette permission est nécessaire pour pouvoir apporter des modifications à un fichier (corriger un texte et enregistrer les changements ; ajouter, modifier ou supprimer un fichier dans un dossier ; etc.). Cette permission est notée w (pour write, écrire).

3. l'exécution d'un fichier : cette permission est nécessaire particulièrement pour les logiciels, afin qu'ils puissent être exécutés. Cette permission est notée x (pour execute, exécuter).

Par exemple, l'utilisateur toto dispose des droits de lecture et d'exécution sur le répertoire foo, mais pas

la permission d'écriture sur ce répertoire ; toto peut donc exécuter les programmes présents dans ce

répertoire et ouvrir les fichiers qu'il contient, mais ne peut pas les modifier ni en créer de nouveaux.

Pour chacune des trois catégories d'utilisateurs (propriétaire, membres du groupe propriétaire et reste du

monde) sont définies ces trois permissions :

le propriétaire dispose ou non de la permission de lecture, d'écriture et d'exécution sur un fichier ; le membre du groupe propriétaire dispose ou non de la permission de lecture, d'écriture et d'exécution

sur un fichier ; tous les autres utilisateurs disposent ou non de la permission de lecture, d'écriture et d'exécution sur un

fichier.

2 http://doc.ubuntu-fr.org/droits

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 29 sur 37 Correction par Gilles Leblanc mai 2012

Les droits sont affiché pars une série de 9 caractères, associés 3 par 3 (rwx rwx rwx) qui

définissent les droits des 3 identités (u, g et o).

rwxr-xr--

\ /\ /\ /

v v v

| | droits des autres utilisateurs (o)

| |

| droits des utilisateurs appartenant au groupe (g)

|

droits du propriétaire (u)

Les répertoires : un cas particulier

Les répertoires sont un cas particulier. Pour accéder au contenu d'un répertoire (pour ouvrir un fichier ou se

déplacer dans un sous-répertoire), un utilisateur doit disposer de la permission d'exécution (x) sur ce répertoire.

De plus, pour être en mesure de lister le contenu d'un répertoire, l'utilisateur doit avoir la permission de lecture

(r) sur ce répertoire. Pour écrire dans le répertoire, la permission d'écriture (w) doit être accordée. L'utilisateur

peut disposer de ces permissions selon qu'il est propriétaire du répertoire, membre du groupe propriétaire du

répertoire ou faire partie du reste du monde.

Un utilisateur ne disposant ni des permissions de lecture ni d'exécution ne pourra aucunement accéder au contenu du répertoire.

Un utilisateur ne disposant que de la permission de lecture pourra lister le contenu du dossier. (Par exemple, avec la commande ls dans une fenêtre de terminal.) Il ne pourra pas accéder au dossier avec son navigateur de fichiers.

Un utilisateur ne disposant que de la permission d'exécution peut ouvrir un répertoire, mais ne peut pas en voir le contenu. C'est utile, par exemple, pour traverser un répertoire dont on ne doit pas pouvoir lister le contenu.

Un utilisateur disposant des droits de lecture et d'exécution pourra lister le contenu d'un dossier et y entrer avec son navigateur de fichiers.

Toujours donner les droits d’exécution aux dossiers!!!

CONFIGURER l’HÉRITAGE DU PROPRIÉTAIRE GROUPE

Les faits :

Un dossier /data/test appartient à emica (user) et à gr_logiciels_rw (groupe)

Un usager nommé jean (user) dont le groupe principal est jean(groupe) crée un sous dossier nommé sousrep dans /data/test

Le sous dossier sousrep aura les propriétaires suivants : user (jean) group (jean)

La solution

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 30 sur 37 Correction par Gilles Leblanc mai 2012

N’oublions pas que nous attribuons le droit d’écriture aux fichiers et dossiers par le biais du groupe, le groupe doit donc être toujours le même.

Un propriétaire usager peut être modifié c’est peu important et même profitable parfois pour le suivi et les exceptions.

Attribuer le droit S au groupe du dossier de tête conservera le même groupe propriétaire pour tous les fichiers/dossiers enfants créés, peu importe qui les créera.

La commande : chmod g+s dirname

Exemple :

Donc pour le dossier suivant :

drwxrwxr-x emica gr_logiciels_rw test

On modifie le droit d’héritage du groupe (chmod g+s test)

Le dossier devient :

Drwxrwsr-x emica gr_logiciels test

Tous les sous-dossiers auront le rws au niveau du groupe

Tous les sous-dossiers auront gr_logiciels_rw comme propriétaire groupe

C’EST CAPITAL POUR DES DOSSIERS PARTAGÉS EN LECTURE ET ÉCRITURE

Source d’information complémentaire : http://www.debian.org/doc/manuals/debian-reference/ch01.fr.html#_filesystem_permissions

10. Exercice : La sécurité des fichiers (droits)

Objectif : Consulter et modifier la sécurité des répertoires et des fichiers

(chmod – tree – ls – sudo)

À faire ! Comment faire ? Fait

Créer la structure de répertoire suivante dans /data :

Effectuer cette opération sur abc, avant de commencer :

sudo chmod –R g+s abc

sudo chgrp –R gr_logiciels_rw abc

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 31 sur 37 Correction par Gilles Leblanc mai 2012

Dans le répertoire tata :

L’administrateur de base (propriétaire des fichiers) doit

être emica ;

Les membres du groupe gr_logiciels_rw doivent pouvoir

écrire et lire ;

Tous les autres doivent pouvoir lire.

Dans le répertoire toto :

L’administrateur de base est emica ;

Tous les autres doivent pouvoir lire.

Essayer le résultat avec l’usager user1 (membre de

gr_logiciels_rw), il devrait pouvoir écrire dans tata et seulement

lire dans toto.

Pourquoi l’usager user1 peut-il seulement lire dans toto? (2

réponses).

Résultat escompté :

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 32 sur 37 Correction par Gilles Leblanc mai 2012

Gestion des usagers et des groupes

Créer/supprimer un usager Unix (adduser, deluser)

Pour lister tous les usagers du système : cat /etc/passwd

Pour lister les 10 derniers usagers du système : tail /etc/passwd

Exemple : ========== USERS ======================

sshd:x:105:65534::/var/run/sshd:/usr/sbin/nologin

saned:x:106:114::/home/saned:/bin/false

hplip:x:107:7:HPLIP system user,,,:/var/run/hplip:/bin/false

landscape:x:108:116::/var/lib/landscape:/bin/false

emica:x:1000:1000:emica,,,:/home/emica:/bin/bash

xp-client$:x:1006:1008:Client Windows:/var/lib/nobody:/bin/false

user1:x:1001:1001:user1,,,:/home/user1:/bin/bash

user2:x:1002:1002:user2,,,:/home/user2:/bin/bash

un:x:1003:1003:un,,,:/home/un:/bin/bash

toto:x:1004:1005:toto,,,:/home/toto:/bin/bash

Pour ajouter un usager manuellement : adduser USERNAME

Pour supprimer un usager : deluser USERNAME

Pour supprimer un usager et son répertoire personnel : deluser - -remove-home USERNAME

No

m d

e l’usager

ID d

e l’usager (p

lus q

ue 1

000

= usager

créé m

anu

ellemen

t)

Rép

ertoire p

erson

nel d

e l’usager

Shell d

e l’usager p

ou

r ou

vrir un

e

session

dan

s Linu

x

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 33 sur 37 Correction par Gilles Leblanc mai 2012

11. Exercice : Création de comptes

Objectif : Créer et supprimer des comptes sur un système Linux (adduser, deluser, fichier passwd)

À faire ! Comment faire ? Fait

Créer un usager pour Michel

Chartrand

Le nom d’usager doit être le

nom de famille suivi de la

première lettre de son

prénom (chartrandm)

**Jamais d’accents, jamais

d’espaces dans un nom

d’usager**

Son numéro de téléphone :

514-555-5555

Local : 116

Mot de passe : chartrandm

Ouvrir une session, la fermer puis

supprimer le compte chartrandm avec

son home directory

Pour supprimer :

sudo deluser –remove-home chartrandm

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 34 sur 37 Correction par Gilles Leblanc mai 2012

Créer/supprimer un groupe Unix (addgroup, delgroup)

Pour créer un groupe : addgroup GROUPNAME

Pour supprimer un groupe : delgroup GROUPNAME

Pour lister les groupes du système : cat /etc/group

tail /etc/group (dix dernières lignes)

Exemple: ========== Groups =====================

admin:x:117:emica

administrateurs:x:1004:

logiciels:x:1006:

machines:x:1008:

user1:x:1001:toto

user2:x:1002:toto

un:x:1003:

toto:x:1005:

grtoto1:x:1007:toto

grtoto2:x:1009:toto

12. Exercice :

Objectif :

À faire ! Comment faire ? Fait

Ajouter les groupes suivants :

gr_datab_rw

gr_photos_rw

gr_photos_ro

gr_pasbon

Supprimer le groupe gr_pasbon

Afficher les groupes

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 35 sur 37 Correction par Gilles Leblanc mai 2012

Gérer les groupes et et les usagers Unix (usermod, groups,

deluser, members)

Pour ajouter un usager à un groupe : usermod –a –G GROUP USERNAME

Exemple : la commande (usermod -a –G comp toto) ajoute l’usager toto au groupe comp

Pour ajouter un usager à plusieurs groupes : usermod -a –G GROUP1, GROUP2 USERNAME

Exemple : la commande (usermod -a –G comp, adm, tous toto) ajoute l’usager toto au groupes

comp, adm et tous

Pour lister les groupes dont font partie un usager : groups USERNAME

Pour retirer un usager d’un groupe : deluser USER GROUP

Pour lister les membres d’un groupe : members –a GROUP

Pour supprimer un usager d’un groupe : Éditer /etc/group avec nano

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 36 sur 37 Correction par Gilles Leblanc mai 2012

13. Exercice : gestion du membership (usermod)

Objectif :

À faire ! Comment faire ? Fait

Créer les usagers :

Georges Dutalent (nom d‘usager = gdutalent)

Louis Lappas (nom d‘usager = llappas)

Bernard Dene (nom d‘usager = bdene)

Créer les groupes

gr_datab_rw

gr_photo_rw

gr_photo_ro

Vérifier votre travail en lisant /etc/passwd et /etc/group

Ajouter gdutalent, llappas et bdene à

gr_datab_rw

usermod -a –G gr_datab_rw gdutalent

usermod -a –G gr_datab_rw llappas

usermod -a –G gr_datab_rw bdene

Ajouter gdutalent à gr_photos_rw usermod -a –G gr_photos_rw gdutalent

Ajouter bdene et llappas à gr_photos_ro

Vérifier votre travail

usermod -a –G gr_photos_ro llappas

usermod -a –G gr_photos_ro bdene

tail –n 5 /etc/group

Vous devriez voir ceci avec « tail – n 3

/etc/group » :

EMICA – DEP Soutien Informatique Introduction au système Linux Module 14 : Gestion de l’Accès

Par Sébastien Ross juin 2012 Page 37 sur 37 Correction par Gilles Leblanc mai 2012

Créez la structure de répertoire suivante et modifiez la sécurité tel que présenté :