INSTITUT SUPERIEUR DES TECHNOLOGIES APPLIQUEE ET DE MANAGEMENT
Licence 2 RESEAUX INFORMATIQUES ET TELECOMMUNICATIONS
Exposé
THEME : Permissions d’accès des fichiers sous
LINUX
MENBRES DU GROUPE3
OUEDRAOGO Wend Nonga Aboul Hakiim
Belem Claver
Enseignant : M. Bationo Prosper
THEME : Permissions d’accès des fichiers sous
LINUX
PLAN
INTRODUCTION
I. Le modèle utilisateur-groupe-autres
1. Présentation du modèle
2. Utilisateur propriétaire (user)
3. Groupe (group)
4. Autres (others)
II. Types de permissions
1. Méthode symbolique
2. Méthode numérique (octale)
III- Permissions Spéciales
1- Le bit SUID (Set User ID)
2- Le bit SGID (Set Group ID)
a. Sur les fichiers
b. Sur les répertoires
c. Utilité pour le travail collaboratif
3-Le Sticky Bit
Conclusion
INTRODUCTION
Dans un monde numérique où la sécurité des données est devenue primordiale, le
système d'exploitation Linux, et plus particulièrement sa distribution Ubuntu,
se distingue par sa robustesse et sa flexibilité. Les permissions d'accès aux
fichiers jouent un rôle crucial dans la protection des informations sensibles
et la gestion des utilisateurs. En effet, comprendre comment ces permissions
fonctionnent permet non seulement de manipuler efficacement les fichiers, mais
aussi de sécuriser l'intégrité du système.
Cet exposé a pour objectif d'explorer en profondeur le système de permissions
d'accès sous Linux . Nous allons examiner les différents types de permissions,
leur importance dans la sécurité des fichiers, et les méthodes permettant de
les configurer et de les gérer. À travers cette présentation, nous aspirons à
fournir une compréhension claire de ces concepts essentiels qui garantissent
la protection des systèmes d'exploitation modernes.
I. Le modèle utilisateur-groupe-autres
1. Présentation du modèle
Sous Linux, chaque fichier ou dossier appartient à un utilisateur et à un
groupe. Les permissions d’accès sont donc définies pour trois catégories
d'entités :
Utilisateur propriétaire (User, ou "u")
Groupe associé (Group, ou "g")
Autres utilisateurs (Others, ou "o")
C’est ce qu’on appelle le modèle UGO (User, Group, Others). Ce modèle simple
mais puissant permet de contrôler finement qui peut faire quoi avec un
fichier.
2. Utilisateur propriétaire (user)
Il s'agit généralement de la personne (ou du compte système) qui a créé
le fichier.
Ce propriétaire peut avoir des droits exclusifs, indépendants des
autres.
Il peut être modifié par un administrateur avec la commande :
Il est possible de changer le propriétaire du fichier avec la commande chown
dont la syntaxe est :
chown [nouveau propriétaire] fichier
test de la commande chown
L’u
tilisateur ubuntu qui est administrateur de la machine commence par crée un
fichier « fichier_test.txt » puis a travers la commande ls -l fichier_test.txt
affiche le propriétaire du fichier(ubuntu) puis d’autre informations que nous
détaillerons par la suite.
Puis on utilise la commande sudo chown testuser fichier_test.txt pour changer
le propriétaire du fichier puis la commande ls -l fichier_test.txt pour
confirmer que le propriétaire du fichier a été changer avec succès.
3. Groupe (group)
Chaque fichier appartient aussi à un groupe Unix.
Les membres de ce groupe peuvent avoir des permissions spécifiques,
différentes de celles de l'utilisateur ou des autres.
On peut changer le groupe associé à un fichier avec :
chgrp nom_du_groupe fichier
Pour tester la commande chgrp ont saisi la commande ls -l [Link] pour
afficher les droits sur le fichier([Link]). On constate que le fichier
appartient au groupe 1006.
Pui
s ont saisi la commande chgrp testgroup [Link] pour changer le groupe de
ceux qui sont autorisés à lire le fichier puis on confirme cela avec ls -l
[Link]. On constate que le fichier appartient maintenant au groupe
testgroup.
Ce mécanisme est très utile dans un contexte collaboratif : plusieurs
utilisateurs membres d’un même groupe peuvent lire ou modifier les fichiers
d’un projet partagé.
4. Autres (others)
Cette catégorie regroupe tous les autres utilisateurs du système qui ne
sont ni le propriétaire du fichier, ni membres du groupe associé.
Ce sont donc des "utilisateurs externes" au sens du fichier.
On leur accorde souvent les permissions minimales, voire aucune, pour
des raisons de sécurité.
II. Types de permissions
Sous les systèmes Unix et Linux, chaque fichier ou dossier possède des
permissions qui déterminent les actions qu’un utilisateur peut effectuer. Ces
permissions sont au nombre de trois :
Lecture (r) : permet de consulter le contenu d’un fichier, ou de lister
les fichiers d’un répertoire.
Écriture (w) : autorise la modification du contenu d’un fichier, ou
l’ajout/suppression de fichiers dans un répertoire.
Exécution (x) : donne la possibilité d’exécuter un fichier s’il s’agit
d’un programme ou d’un script. Pour un répertoire, cela permet d’y
accéder (par exemple avec cd) et d’y parcourir la hiérarchie.
Ces permissions sont attribuées séparément au propriétaire du fichier, au
groupe, et aux autres utilisateurs, permettant ainsi un contrôle précis de la
sécurité et de l’accès aux ressources.
Pour afficher la permission accordée à un fichier on utilise la commande ls -
l.
Cette commande affiche la liste des permissions accorder au fichier sous cette
forme : -rwxr-xr—
Chaque caractère a une signification précise :
Le premier caractère indique le type de fichier (- pour un fichier, d
pour un répertoire, l pour un lien symbolique, etc.)
Les neuf caractères suivants sont divisés en trois groupes de trois :
o rwx : permissions pour le propriétaire
o r-x : permissions pour le groupe
o r-- : permissions pour les autres utilisateurs
Chaque position peut contenir :
r : permission de lecture
w : permission d’écriture
x : permission d’exécution
- : permission absente
Exemple :
ubuntu@ubuntu:~$ touch [Link] cette commande crée un fichier vide nommé
[Link] touch est souvent utilisé pour créer des fichiers ou mettre à jour
leur date de modification. ubuntu@ubuntu:~$ ls -l [Link] . Cette ligne donne plusieurs
informations importantes :
-rw-rw-r-- : Ce sont les permissions du fichier.
- signifie que c'est un fichier ordinaire (pas un dossier).
rw- : le propriétaire peut lire et écrire.
rw- : le groupe peut aussi lire et écrire.
r-- : les autres utilisateurs peuvent seulement lire.
1 : Il y a 1 lien vers ce fichier (habituellement, un seul lien dur pour un
fichier simple).
ubuntu : C’est le propriétaire du fichier.
ubuntu : C’est aussi le groupe associé au fichier.
0 : La taille du fichier en octets (ici 0 car le fichier est vide).
mai 16 17:55 : Date et heure de la dernière modification du fichier.
[Link] : Nom du fichier.
La commande chmod permet d’attribuer des droits et de retirer des droits a des
utilisateurs. Sa syntaxe de base est chmod options permissions fichier.
Il existe deux méthodes principales
1. Méthode symbolique
On utilise des lettres pour indiquer qui est concerné et quelles permissions
ajouter, retirer ou définir :
u : utilisateur (propriétaire)
g : groupe
o : autres
a : tous (user + groupe + autres)
+ : ajoute une permission
- : retire une permission
= : définit exactement la permission
Exemples :
chmod u+x [Link] # Ajoute l’exécution au propriétaire
chmod go-w [Link] # Retire l’écriture au groupe et aux autres
chmod a=r [Link] # Donne seulement le droit de lecture à tous
2. Méthode numérique (octale)
Valeurs des permissions (méthode numérique avec chmod) :
7 : rwx → lecture + écriture + exécution
6 : rw- → lecture + écriture
5 : r-x → lecture + exécution
4 : r-- → lecture seule
3 : -wx → écriture + exécution
2 : -w- → écriture seule
1 : --x → exécution seule
0 : --- → aucun droit
Exemple :
chmod 755 [Link] # rwx pour propriétaire, rx pour groupe et
autres
chmod 644 [Link] # rw pour propriétaire, r pour groupe et autres
chmod 700 [Link] # rwx pour propriétaire, aucun accès pour les
autres
III- Permissions Spéciales
1- Le bit SUID (Set User ID)
Le bit SUID (Set User ID) est un flag spécial de permission qui permet à un
programme de s’exécuter avec les droits de son propriétaire, et non ceux de
l’utilisateur qui le lance.
Exemple classique : /usr/bin/passwd
La commande passwd permet à un utilisateur de changer son mot de passe. Or,
les mots de passe sont stockés dans un fichier protégé (/etc/shadow),
uniquement accessible par l’utilisateur root.
Pour permettre cette action sans donner les droits root complets, le binaire
/usr/bin/passwd est marqué avec le bit SUID :
ls -l /usr/bin/passwd
Note : le **s** à la place du x pour l’utilisateur : cela signifie que le
programme s’exécutera avec les droits du propriétaire (root).
Utilité
Permet à un utilisateur d’exécuter temporairement une commande avec des
droits élevés, uniquement pour une tâche spécifique.
Très utile pour les programmes système comme passwd, ping, etc.
Risques
Si un programme avec le bit SUID contient une faille, un attaquant peut
l’exploiter pour obtenir les droits root.
C’est donc une porte d’entrée potentielle pour une élévation de
privilèges.
Bonnes pratiques
Limiter le nombre de programmes avec SUID.
Vérifier régulièrement les fichiers SUID avec :
find / -perm -4000 2>/dev/null
Exemple : pour attribuer les droits SUID a un fichier on utilise la commande
chmod u+s mon_sript.sh (cette commande s’applique au groupe et aux autres). De
même pour retirer ces droits on utilise la commande chmod u-s mon_script.sh.
Le **s** à la place du x pour l’utilisateur : cela signifie que le programme
s’exécutera avec les droits du propriétaire (root).
2- Le bit SGID (Set Group ID)
Le bit SGID est un drapeau spécial de permission qui se comporte différemment
selon qu’il est appliqué à un fichier ou à un répertoire.
a. Sur les fichiers
Lorsqu’un fichier exécutable est marqué avec le bit SGID, il s’exécutera avec
les droits du groupe propriétaire du fichier, et non ceux du groupe de
l’utilisateur qui l’exécute.
Cette utilisation est rare et potentiellement risquée, car elle peut permettre
à un utilisateur d’accéder temporairement à des privilèges de groupe
sensibles.
rw- → Propriétaire peut lire et écrire
rws → Groupe peut lire et écrire, et le bit SGID est activé, mais le
fichier n’est pas exécutable
o Le s indique que :
Le bit SGID est actif
Mais il n’y a pas de permission d’exécution pour le groupe
r-- → Les autres peuvent lire
b. Sur les répertoires
C’est l’usage le plus courant du bit SGID.
Lorsqu’un répertoire possède le bit SGID, tous les nouveaux fichiers ou
dossiers créés à l’intérieur héritent automatiquement du groupe du répertoire
parent, au lieu du groupe principal de l’utilisateur.
c. Utilité pour le travail collaboratif
Ce comportement est très utile dans les répertoires partagés entre plusieurs
utilisateurs, car il garantit que tous les fichiers créés seront associés au
même groupe, facilitant ainsi la collaboration et l’accès partagé.
3-Le Sticky Bit
Le Sticky Bit est un droit spécial sur les répertoires sous Linux/Unix. Il
permet de faire en sorte que seul le propriétaire d'un fichier ou
l'utilisateur root puisse le supprimer ou le renommer, même si d'autres
utilisateurs ont des droits d'écriture sur le répertoire.
Le Sticky Bit est utilisé pour sécuriser les répertoires partagés, comme /tmp,
afin que les utilisateurs ne puissent pas supprimer les fichiers des autres.
Pour activer le bit sticky sur un répertoire partagé chmod +t
chemin_vers_le_repertoire_partagé.
Pour désactiver le bit sticky sur un répertoire partagé chmod +t
chemin_vers_le_repertoire_partagé.
Conclusion
Cet exposé présente le mécanisme de permissions sous Linux, qui repose sur le
modèle UGO (User-Group-Others) et permet de sécuriser l’accès aux fichiers et
répertoires. Chaque fichier est associé à un propriétaire, à un groupe et à la
catégorie « autres », et chacun de ces trois bénéficie de droits de lecture,
d’écriture et d’exécution, que l’on affiche avec ls -l et modifie à l’aide des
commandes chmod, chown et chgrp. Les bits spéciaux SUID, SGID et sticky
offrent des comportements avancés : le SUID permet à un binaire de s’exécuter
avec les droits de son propriétaire, le SGID assure l’héritage de groupe dans
les répertoires partagés, et le sticky bit empêche la suppression de fichiers
par un utilisateur autre que leur propriétaire. Pour garantir la sécurité
globale du système, il est essentiel d’appliquer le principe du moindre
privilège, de limiter et d’auditer régulièrement les exécutables marqués
SUID/SGID, d’organiser les utilisateurs en groupes de travail, de protéger les
répertoires publics à l’aide du sticky bit, et d’automatiser la vérification
des permissions tout en centralisant les logs.
BIBLIOGRAPHIE :
[Link]
[Link]
[Link]