Vous êtes sur la page 1sur 26

Chapitre 3

Gestion des droits d’accès


(poids 3)

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

• Visualiser les permissions sur les fichiers/répertoires

La commande pour visualiser les permissions est : ls -l


Type Propriétaire Groupe Autres Nom Groupe Nom
U G O propriétaire fichier
d rwx r-x r-x ubuntu prof cours
- rwx rwx rwx ubuntu prof img.jpg
- rwx --- --- ubuntu prof tp_unix.txt

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

Pour affecter ces permissions au répertoire on tape la


commande :
chmod 750 Rep

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

• Exemple : chmod -R 750 monRépertoire


Ceci donne tous les droits au propriétaire, les droits de lecture
et exécution au groupe et aucuns droits aux autres…

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)

• Seuls le super-utilisateur ou le propriétaire actuel d'un


fichier peut utiliser chown. La commande s'utilise de la
façon suivante :
sudo chown toto fichier1
Le fichier fichier1 appartient à l'utilisateur toto.
• chown permet aussi de changer en une seule commande le
propriétaire et le groupe du fichier :
sudo chown toto : lesPotes fichier1
Le fichier fichier1 appartient à l'utilisateur toto et au
groupe lesPotes 14
Chgrp: change group
• La commande chgrp (pour change group) permet de
changer le groupe auquel appartient le fichier.
chgrp groupe fichier
• Seuls le super-utilisateur ou le propriétaire actuel d'un
fichier peut utiliser chgrp (un membre du groupe ne peut
pas changer le groupe propriétaire).
• Exemple: chgrp mesPotes toto
Le fichier toto appartient maintenant au groupe mesPotes.
Tous les membres du groupe mesPotes auront accès à ce
fichier selon les permissions du groupe.
15
umask : user mask
• Les droits d’accès par défaut d'un fichier ou répertoire a sa
création sont défini par umask.
• A sa création, un fichier aura les permissions par défaut
suivantes:
666 (rw- rw- rw-) - umask
• A sa création, un répertoire aura les permissions par défaut
suivantes :
777 (rwx rwx rwx) - umask
• Pour un fichier :
• umask 022 : A partir des droits maximum 666, on retranche 022, on
obtient donc 644, Ainsi, par défaut les fichiers crées auront comme
droit 644 (rw- r-- r--).
• Pour un répertoire :
• umask 022 : A partir des droits maximum 777, on retranche 022, on
obtient donc 755. Ainsi, par défaut les répertoires crées auront
comme droit 755 (rwx r-x r-x). 16
umask : user mask
• Afficher la valeur actuel de umask
$umask
• Modifier la valeur de umask
$umask 422

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.

Droit octale sympbolique

Stiky bit 1000 o+t

SUID 4000 u+s

GUID 2000 g+s

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.

• En appliquant le sticky bit


chmod 1755 tmp/ ou bien chmod a+t tmp/
• Ce droit s'affiche en lieu et place du droit en exécution de la
catégorie autres

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

Vous aimerez peut-être aussi