
ugor → 4w → 2x → 1-dlcbps| Type de fichier | Permissions u |
Permissions g |
Permissions o |
Valeur octale | Exemple |
|---|---|---|---|---|---|
- |
rw- |
r-- |
r-- |
644 | /etc/hosts |
d |
rwx |
r-x |
r-x |
755 | /var/www |
l |
rwx |
rwx |
rwx |
777 | /dev/cdrom |
Afficher les permissions appliquées sur un fichier
ls -l fichier_lab.txt
-rw-r--r--. 1 root root 0 30 oct. 09:15 fichier_lab.txt
Modifier les permissions appliquées sur un fichier
chmod 664 fichier_lab.txt
ls -l fichier_lab.txt
-rw-rw-r--. 1 root root 0 30 oct. 09:15 fichier_lab.txt
On a ajouté les droits en écriture pour le groupe propriétaire
chmod o-r fichier_lab.txt
ls -l fichier_lab.txt
-rw-rw----. 1 root root 0 30 oct. 09:15 fichier_lab.txt
On a retiré les droits en lecture pour tout autre utilisateur
chmod +x script_lab.sh
ls -l script_lab.sh
-rwxr-xr-x. 1 root root 0 30 oct. 09:19 script_lab.sh
On a ajouté les droits en exécution pour tous les utilisateurs
chown labuser1: fichier_lab.txt
ls -l fichier_lab.txt
-rw-rw----. 1 labuser1 labuser1 0 30 oct. 09:15 fichier_lab.txt
On a défini l'utilisateur labuser1 comme propriétaire du fichier
chown :postgres fichier_lab.txt
ls -l fichier_lab.txt
Ou
chgrp postgres fichier_lab.txt
-rw-rw----. 1 labuser1 postgres 0 30 oct. 09:15 fichier_lab.txt
On a défini le groupe postgres comme propriétaire du fichier
chown root:root fichier_lab.txt
ls -l fichier_lab.txt
-rw-rw----. 1 root root 0 30 oct. 09:15 fichier_lab.txt
On a défini l'utilisateur et le groupe root comme propriétaire
4000 → Le fichier s'exécute avec les droits du propriétaire du fichier2000 → Pour les dossiers: les nouveaux fichiers héritent des permissions du groupe parent1000 → Pour les dossier: restriction sur la suppression des fichiersls -l /usr/bin/sudo
---s--x--x. 1 root root 297752 9 juil. 02:00 /usr/bin/sudo
Le fichier /usr/bin/sudo a une permission fixée à 4111 pour s'exécuter avec les droits de l'utilisateur propriétaire
ls -ld /run/log/journal/
drwxr-sr-x+ 3 root systemd-journal 60 30 oct. 08:07 /run/log/journal/
Le dossier /run/log/journal/ a une permission fixée à 2755 et les fichiers créés dans ce dossier hériteront de ses permissions
ls -ld /tmp/
drwxrwxrwt. 11 root root 4096 30 oct. 09:38 /tmp/
Le dossier /tmp/ a une permission fixée à 1777 qui détermine l'impossibilité de supprimer des fichiers dont on est pas le propriétaire
chmod 4755 script_lab.sh
ls -l script_lab.sh
-rwsr-xr-x. 1 root root 0 30 oct. 09:19 script_lab.sh
_Le fichier scriptlab.sh sera exécuté avec les droits root pour tous les utilisateurs
chmod g+s dossier_lab/
ls -ld dossier_lab/
drwxr-sr-x. 2 root root 6 30 oct. 13:48 dossier_lab/
_Le dossier dossierlab/ est maintenant défini avec un SGID
chmod 1777 sticky_dir/
ls -ld sticky_dir/
drwxrwxrwt. 2 root root 6 30 oct. 13:54 sticky_dir/
_Le dossier stickydir/ est maintenant défini avec un StickyBit
Si le marqueur de permission spéciale apparaît en majuscule: cela signifie une incohérence avec les permissions en exécution
User File Creation MASK - Le masque du mode de création de fichiers par l'utilisateur Permet de définir des droits d'accès par défaut pour l'ensemble des fichiers et des dossiers créés
Permissions fichier standard → 666 moins umask 022 → 644
Permissions dossier standard → 777 moins umask 022 → 755
umask
0022 → il s'agit du umask par défaut pour tous les utilisateurs
Modifier son umask temporairement
su - labuser1
umask 077
touch testumask.txt
ls -l testumask.txt
-rw-------. 1 labuser1 labuser1 0 30 oct. 14:44 testumask.txt
L'utilisateur labuser1 a modifié son umask jusqu'à sa prochaine déconnexion
Modifier son umask de manière persistente
su - labuser1
vim ~/.bashrc
Ajouter une ligne umask avec la valeur choisie
umask 077 par exemple
touch testumask2.txt
ls -l testumask2.txt
-rw-------. 1 labuser1 labuser1 0 30 oct. 14:52 testumask2.txt
L'utilisateur labuser1 a modifié son umask de manière persistente
Modifier l'umask pour tous les nouveaux utilisateurs créés
vim /etc/login.defs
Modifier la ligne UMASK 022 par la définition voulue
UMASK 027 par exemple
Vérification
useradd umaskuser
su - umaskuser
touch fichier_test.txt
ls -l fichier_test.txt
-rw-r-----. 1 umaskuser umaskuser 0 30 oct. 15:07 fichier_test.txt
Le nouvel utilisateur umaskuser a un umask défini à 027
Les ACL nous permettent d'appliquer un ensemble d'autorisations plus spécifique à un fichier ou un dossier sans (nécessairement) modifier le propriétaire et les autorisations de base
2 commandes essentielles:
getfacl → pour afficher les ACLssetfacl → pour définir les ACLs770700700ls -la /root/labacl/
total 4
drwxrwx---. 2 root root 46 30 oct. 16:13 .
dr-xr-x---. 11 root root 4096 30 oct. 15:54 ..
-rwx------. 1 root root 0 30 oct. 15:58 fichier_acl1
-rwx------. 1 root root 0 30 oct. 16:13 fichier_acl2Permissions pour les groupes
setfacl -m g:groupallow:rwx /root/labacl/
setfacl -R -m g:groupdeny:rx /root/labacl/
Permissions pour les utilisateurs
setfacl -m u:labuser1:rwx /root/labacl/fichier_acl1
setfacl -m u:labuser1:r /root/labacl/fichier_acl2
Vérifications
getfacl /root/labacl/
getfacl : suppression du premier « / » des noms de chemins absolus
# file: root/labacl/
# owner: root
# group: root
user::rwx
group::rwx
group:groupallow:rwx
group:groupdeny:r-x
mask::rwx
other::---
getfacl /root/labacl/fichier_acl1 /root/labacl/fichier_acl2
getfacl : suppression du premier « / » des noms de chemins absolus
# file: root/labacl/fichier_acl1
# owner: root
# group: root
user::rwx
user:labuser1:rwx
group::---
group:groupdeny:r-x
mask::rwx
other::---
# file: root/labacl/fichier_acl2
# owner: root
# group: root
user::rwx
user:labuser1:r--
group::---
group:groupdeny:r-x
mask::r-x
other::---
Pour supprimer les ACLs d'un utilisateur sur un fichier
setfacl -x u:labuser1 /root/labacl/fichier_acl2
Pour supprimer les ACLs d'un groupe sur un dossier
setfacl -x g:groupdeny /root/labacl/
Pour supprimer toutes les ACLs définies sur un fichier
setfacl -b /root/labacl/fichier_acl1
Vérification sur un dossier de manière récursive
getfacl -R /root/labacl/
getfacl : suppression du premier « / » des noms de chemins absolus
# file: root/labacl/
# owner: root
# group: root
user::rwx
group::rwx
group:groupallow:rwx
mask::rwx
other::---
# file: root/labacl//fichier_acl1
# owner: root
# group: root
user::rwx
group::---
other::---
# file: root/labacl//fichier_acl2
# owner: root
# group: root
user::rwx
group::---
group:groupdeny:r-x
mask::r-x
other::---
Sources principales:
man getfaclman setfacl