Chapitre 3 - Gestion Des Droits D'accès
Chapitre 3 - Gestion Des Droits D'accès
Chapitre 3 - Gestion Des Droits D'accès
1
Les droits d’accès
• Les droits d'accès définissent la possession d'un
fichier ou d'un répertoire à un utilisateur et à un
groupe d'utilisateurs.
• Ils gèrent les actions que les utilisateurs ont droit
d'effectuer sur les fichiers (lecture, écriture et
exécution).
• La possession et la gestion des permissions
associées s'effectue individuellement pour chaque
fichier.
2
L'organisation des
utilisateurs sous
Linux
3
Utilisateurs et permissions
• Chaque fichier ou répertoire possède :
• un propriétaire
• un groupe propriétaire
4
Utilisateurs et permissions
• Unix distingue 3 catégories d’utilisateurs
• User (u)
• Group (g)
• Others (o)
• User (u)
• Désigne la personne qui a créé le fichier/répertoire, c’est le
propriétaire (peut être modifié par la suite)
• Group (g)
• Désigne les membres du groupe d’utilisateurs
• prof, étudiants, … pour un établissement d’enseignement.
• direction, comptabilité, infographie, … pour une société
• Others (o)
• Désigne tous les autres utilisateurs
5
Utilisateurs et permissions
• Unix distingue 3 types de permissions
• r : read => permission de lecture
• w : write => permission d’écriture
• x : exécution => permission d’exécution
6
Utilisateurs et permissions
• Types de fichiers
• - : fichier normal
• d : répertoire
• l : lien symbolique (raccourci)
7
Utilisateurs et permissions
• Sémantique des permissions
Fichier r Autorise la consultation
– Affichage
– copie
w Autorise la modification
– modification du contenu
– suppression du fichier
– changement de nom
x Autorise l’exécution
– le fichier doit être un programme
8
Utilisateurs et permissions
• Sémantique des permissions
Répertoire r Autorise la consultation
– affichage du contenu (ls)
w Autorise la modification
– modification du nom (mv)
– ajout/suppression du contenu (rm)
– suppression du répertoire (rm)
x Autorise la traversée
– utilisation dans un chemin d’accès à une
entrée (fichier/répertoire) (cd)
9
Chmod: change mode
• Syntaxe
chmod <qui(u g o) action(+ - =) droit(r w x)> fichier/rep
a = all = ugo (chmod +r = chmod a+r = chmod ugo+r)
• Exemples
chmod ugo+rwx fichier1 fichier2
chmod u+rw, g+r, o=rwx fichier3
chmod ug=rwx,o=rx fichier4
10
Chmod: change mode
• Syntaxe en forme condensée (octal)
• Chaque « groupement » de droits (pour user, group et others
sera représenté par un chiffre et à chaque droit correspond une
valeur :
• r = 4 (r-- : 100 en binaire)
• w = 2(-w- : 010 en binaire)
• x = 1 (--x : 001 en binaire)
• - = 0 (--- : 000 en binaire)
• Par exemple :
• Pour rwx, on aura : 4+2+1 = 7
• Pour rw-, on aura : 4+2+0 = 6
• Pour r--, on aura : 4+0+0 = 4
Ex: chmod 764 toto.sh
11
Chmod: change mode
En octal
• Par exemple les permissions d’un répertoire Rep sont :
d rwx r-x - - -
En octal, on aura 750 :
rwx r-x ---
4+2+1 = 7 4+0+1 = 5 0+0+0=0
12
Chmod: change mode
Récursivement
• Pour chacune de ces commandes, on peut les lancer
récursivement sur un répertoire.
• L'action sera effectuée sur le répertoire désigné et sur tous les
fichiers ou répertoires qu'il contient.
• Ceci se fait en ajoutant l'option -R
13
Chown: change owner
• La commande chown (change owner, changer le
propriétaire) permet de changer le propriétaire et le groupe
du fichier.
chown propriétaire:groupe fichier (Syntaxe sysV)
chown propriétaire.groupe fichier (Syntaxe BSD)
17
Gestion des utilisateurs
• Seul le super-utilisateur peut
ajouter/supprimer/modifier un utilisateur.
• La commande adduser permet d'ajouter un utilisateur.
adduser nomUser
• Un répertoire personnel du nouveau utilisateur
(nomUser) est automatiquement créé
(/home/NomUser).
• La commande deluser permet de supprimer un
utilisateur.
deluser nomUser
18
Gestion des groupes
• Seule le super-utilisateur peut ajouter/supprimer/modifier un groupe.
• La commande addgroup permet d'ajouter un groupe
addgroup nomGroupe
• La commande usermod permet de modifier un utilisateur en l’ajoutant à un
groupe.
usermod -g nomGroupe nomUser
• Un utilisateur peut appartenir à plusieurs groupes. Pour ce faire, utilisez le
paramètre -G (majuscule).
usermod -G amis,paris,collegues patrick
• Pour ajouter des groupes à un utilisateur sans perdre les groupes auxquels
il appartenait avant cela, utilisez l’option –a.
usermod -aG amis,paris,collegues patrick
• La commande delgroup permet de supprimer un un groupe.
delgroup nomGroupe
19
Valider un mot de passe
• la commande passwd permet de valider ou
modifier un mot de passe
• Deux syntaxes :
– $passwd : changer son propre mot de passe
– #passwd nom_user: réservé à l’administrateur
pour modifier le mot de passe d’un utilisateur
• Options
− –l : (lock) vérouille le compte de l’utilisateur, ex:
passwd –l annie
− -u : (unlock) : dévérouille le compte
− -d : (delete) : supprime le mot de passe
20
Les droits spéciaux et
utilisation
• Parallèlement aux droits standards, des droits étendus existent et
répondent à des besoins spécifiques:
• SUID : (Set User ID)
Lorsque ce bit est positionné, une commande peut être lancée par
un autre utilisateur avec l'UID de son propriétaire (exple: passwd)
• SGID : (Set Group ID)
idem que SUID, une commande peut être lancée par un autre
utilisateur avec le GID de son propriétaire
Quand le SGID est assigné à un répertoire, tout fichier créé sur ce
répertoire appartiendra au même groupe propriétaire de ce
répertoire
• Sticky bit (bit collant):
Si ce bit est placé sur un dossier, seul le propriétaire d'un fichier
pourra le renommer ou le supprimer. (exple: /tmp)
21
Utilisation
• La commande chmod permet aussi de placer le stiky bit, SUID-
Bit, GUID-Bit.
22
Le stiky bit
• Le droit Sticky Bit (appellé aussi bit collant) permet d'interdire à
tout utilisateur (sauf le root) de supprimer un fichier dont il n'est
pas le propriétaire, quelque soient ses droits.
• Exemple: Dans le répertoire /tmp tous les utilisateurs ont le
droit de lire et d’écrire (supprimer) des fichiers.
23
SUID: le fameux exemple
• En exécutant un programme possédant un droit SUID, un
utilisateur s'appropie les droits du propriétaire du fichier
exécutable durant le temps d'exécution du programme.
• L'exemple le plus flagrant est celui du
programme /usr/bin/passwd qui appartient à l'utilisateur root.
• Comment donc modifier votre mot de passe si vous n'êtes pas
autorisé à écrire sur le fichier stockant les mots passes ?!!
• /usr/bin/passwd vous y autorise grâce au droit SUID : vous
utilisez le droit en écriture du root durant l'exécution du
programme qui change votre mot de passe.
• RQ : la présence du droit SUID suppose la présence du droit en
exécution qui permet de lancer le fichier exécutable.
SUID :manipulation
• Notation symbolique
• Syntaxe : chmod u+s fichier-exécutable.
• Exemple : chmod u+s data/hotprog.
• Notation numérique
• Syntaxe : chmod 4+droits fichier-exécutable.
• Exemple : chmod 4755 monprog.
• Dans cet exemple on donne les droits rwsr-xr-x au
fichier monprog. Ne pas oublier que le droit SUID s'affiche à la
place du droit en exécution du propriétaire sans que ce dernier
soit supprimé!
25
GUID :manipulation
• Notation symbolique
• Syntaxe : chmod g+s fichier-exécutable.
• Exemple : chmod g+s data/hotprog.
• Notation numérique
• Syntaxe : chmod 2+droits fichier-exécutable.
• Exemple : chmod 2755 monprog.
• Dans cet exemple on donne les droits rwxr-sr-x au
fichier monprog. Ne pas oublier que le droit GUID s'affiche à la
place du droit en exécution du groupe sans que ce dernier soit
supprimé!
26