Shell

Tous les fichiers et répertoires ont un propriétaire, et font parti d'un groupe.
Chaque fichier défini donc des permissions pour:

  • User: le propriétaire
  • Group: les utilisateurs qui font partie du groupe
  • Other: les utilisateurs qui ne sont ni propriétaire ni dans le groupe

Les permissions de base sont:

  • Read: Lecture
  • Write: Ecriture
  • eXecute: Execution

Lecture des droits des fichiers

ls -al          : -al permet de lister les droits des fichiers, y compris cachés
 rwxr-xr--
 \ /\ /\ /
  v  v  v
  |  |  droits des autres utilisateurs (o)
  |  |
  |  droits des utilisateurs appartenant au groupe (g)
  |
 droits du propriétaire (u)
$ ls -al           
total 192
drwxrwxr-x 18 yolo yolo 4096 janv. 25 14:23 .          : droits du répertoire courant
drwxrwxr-x 26 yolo yolo 4096 févr.  5 10:55 ..         : droits du répertoire parent
-rw-rw-r--  1 yolo yolo 5917 janv. 25 14:23 readme.txt : lecture /écriture User/Group, lecture seule pour Other
-rwxr-xr-x  1 yolo yolo 2642 janv. 25 11:31 run        : lecture/écriture/execution pour le User, lecture/execution pour le groupe et les autres

Des permissions supplémentaires existent:

  • SUID: Set UID, le fichier est éxécuté avec les droits de son propriétaire
  • SGID: Set GUID, le fichier est éxécuté avec les droits de son groupe
  • Sticky Bit: Lorsque ce droit est positionné sur un répertoire, il interdit la suppression d'un fichier qu'il contient à tout utilisateur autre que le propriétaire du fichier.
$ ls -al           
total 192
drwxrwxr-x 18 yolo yolo 4096 janv. 25 14:23 .          
drwxrwxr-x 26 yolo yolo 4096 févr.  5 10:55 ..         
rwsr-xr-x  1 yolo yolo 2642 janv. 25 11:31 run        : le x est remplacé par un s pour le User

Le SUID bit nous permet de lancer des commandes avec les droits d'un autre utilisateur et faire de l'élévation de privilège.