Il existe trois types d'autorisations pour les fichiers exécutables et les répertoires publics : setuid, setgid et sticky bit. Lorsqu'elles sont définies, n'importe quel utilisateur qui exécute ce fichier exécutable prend l'ID du propriétaire (ou du groupe) du fichier exécutable.
Vous devez être très prudent lorsque vous définissez des autorisations spéciales, car elles constituent un risque de sécurité. Par exemple, un utilisateur peut obtenir des capacités root en exécutant un programme qui définit l'ID utilisateur (UID) sur 0, qui est l'UID de root. En outre, tous les utilisateurs peuvent définir des autorisations spéciales pour les fichiers qu'ils détiennent, ce qui constitue un autre problème de sécurité.
Il est recommandé de surveiller votre système pour toute utilisation non autorisée des autorisations setuid et setgid pour obtenir les capacités root. Une autorisation suspecte accorde la propriété d'un programme d'administration à un utilisateur plutôt qu'à root ou bin. Pour rechercher et afficher la liste de tous les fichiers qui utilisent ces autorisations spéciales, reportez-vous à la section Recherche de fichiers avec des autorisations de fichier spéciales.
Quand l'autorisation setuid est définie sur un fichier exécutable, un processus qui exécute ce fichier se voit accorder l'accès sur la base du propriétaire du fichier. L'accès n'est pas basé sur l'utilisateur qui exécute le fichier exécutable. Ces autorisations spéciales permettent à un utilisateur d'accéder aux fichiers et répertoires qui sont normalement disponibles uniquement pour le propriétaire.
Par exemple, les autorisations setuid sur la commande passwd permettent aux utilisateurs de modifier les mots de passe. Une commande passwd avec une autorisation setuid doit ressembler à ceci :
-r-sr-sr-x 1 root sys 56808 Jun 17 12:02 /usr/bin/passwd
Cette autorisation spéciales présente un risque de sécurité. Certains utilisateurs déterminés peuvent trouver un moyen de conserver les autorisations qui sont leur sont accordées par le processus setuid même lorsque le processus a terminé de s'exécuter.
Les autorisations setgid sont similaires aux autorisations setuid. L'ID de groupe (GID) effectif du processus est remplacé par le groupe qui est propriétaire du fichier, et un utilisateur se voit accorder les autorisations qui sont accordées au groupe. La commande /usr/bin/mail dispose des autorisations setgid :
-r-x--s--x 1 root mail 71212 Jun 17 12:01 /usr/bin/mail
Lorsque les autorisations setgid sont appliquées à un répertoire, les fichiers qui ont été créés dans ce répertoire appartiennent au groupe auquel appartient le répertoire. Les fichiers n'appartiennent pas au groupe auquel le processus de création appartient. Tout utilisateur qui dispose d'autorisations d'écriture et d'exécution dans le répertoire peut y créer un fichier. Toutefois, le fichier appartient au groupe qui est propriétaire du répertoire, et non au groupe auquel appartient l'utilisateur.
Vous devez surveiller votre système pour toute utilisation non autorisée de l'autorisation setgid pour obtenir des capacités root. Des autorisations suspectes accordent l'accès de groupe à un tel programme à un groupe inhabituel plutôt qu'à root ou bin. Pour rechercher et afficher la liste de tous les fichiers qui utilisent ces autorisations, reportez-vous à la section Recherche de fichiers avec des autorisations de fichier spéciales.
Le sticky bit est un bit d'autorisation qui protège les fichiers d'un répertoire. Si le sticky bit est défini pour le répertoire, un fichier peut être supprimé uniquement par le propriétaire du fichier, le propriétaire du répertoire ou par un utilisateur privilégié. L'utilisateur root est un exemple d'utilisateur privilégié. Le sticky bit empêche un utilisateur de supprimer les fichiers d'autres utilisateurs dans des répertoires publics tels que /tmp :
drwxrwxrwt 7 root sys 400 Sep 3 13:37 tmp
Veillez à définir le sticky bit manuellement lorsque vous définissez un répertoire public directory dans un système de fichiers TMPFS. Pour plus d'instructions, reportez-vous à l'Example 1–5.