Deux autorisations spéciales peuvent être définies sur les fichiers exécutables :Définir l'ID utilisateur (setuid) et Définir l'ID de groupe (sgid). Ces autorisations permettent au fichier en cours d'exécution d'être exécuté avec les privilèges du propriétaire ou du groupe. De même, il existe deux autorisations spéciales pour les répertoires :le sticky bit et le setgid bit. Vous trouverez ci-dessous quelques-unes des questions d'entretien Linux les plus fréquemment posées sur les autorisations spéciales telles que SUID, SGID et sticky bit.
Qu'est-ce que Définir l'ID utilisateur (setuid) ?
SUID est une autorisation spéciale attribuée à un fichier. Ces autorisations permettent au fichier en cours d'exécution d'être exécuté avec les privilèges du propriétaire. Par exemple, si un fichier appartenait à l'utilisateur root et que le bit setuid était défini, peu importe qui exécutait le fichier, il s'exécuterait toujours avec les privilèges de l'utilisateur root.
Comment définir le bit SUID sur un fichier ?
Vous devez être le propriétaire du fichier ou l'utilisateur root pour définir le bit setuid. Exécutez la commande suivante pour définir le bit setuid :
# chmod u+s file1
Affichez les autorisations à l'aide de la commande ls -l :
# ls -l file1 -rwSrw-r-- 1 user1 user1 0 2017-10-29 21:41 file1
Notez le S majuscule . Cela signifie qu'il n'y a pas d'autorisations d'exécution. Exécutez la commande suivante pour ajouter des autorisations d'exécution au fichier file1, en notant les s minuscules .
# chmod u+x file1
# ls -l file1 -rwsrw-r-- 1 user1 user1 0 2017-10-29 21:41 file1
Notez le s minuscule. Cela signifie qu'il existe des autorisations d'exécution.
Vous pouvez également définir le bit setuid à l'aide de la méthode numérique en ajoutant un 4 au mode. Par exemple, pour définir le bit setuid, les autorisations de lecture, d'écriture et d'exécution pour le propriétaire du fichier file1, exécutez la commande suivante :
# chmod 4700 file1
Qu'est-ce que Définir l'ID de groupe (setgid) pour les fichiers ?
Lorsque le bit Set Group ID est défini, l'exécutable est exécuté avec l'autorité du groupe. Par exemple, si un fichier appartenait au groupe d'utilisateurs, peu importe qui exécutait ce fichier, il s'exécuterait toujours avec l'autorité du groupe d'utilisateurs.
Comment définir le bit SGID pour les fichiers ?
Exécutez la commande suivante pour définir le bit setgid sur le fichier file1 :
# chmod g+sRemarque :Les bits setuid et setgid sont définis à l'aide du symbole s. Le setgid est représenté de la même manière que le bit setuid, sauf dans la section groupe des autorisations.
Exécutez la commande suivante en tant qu'utilisateur root pour définir le bit setgid et les autorisations de lecture, d'écriture et d'exécution pour le propriétaire du fichier file1 :
# chmod 2700 file1
Le setgid est représenté de la même manière que le bit setuid, sauf dans la section group des permissions :
ls -l file1 -rwx--S--- 1 user1 user1 0 2017-10-30 21:40 file1
Utilisez la commande chmod u+s pour définir le bit setuid. Utilisez la commande chmod g+s pour définir le bit setgid.
Qu'est-ce que Définir les autorisations d'ID de groupe pour les répertoires ?
Lorsque le bit setgid est défini sur un répertoire, tous les fichiers créés dans ledit répertoire héritent de la propriété de groupe de ce répertoire. Par exemple, le dossier dossier1 appartient à l'utilisateur utilisateur1 et le groupe groupe1 :
# ls -ld folder1 drwxrwxr-x 2 user1 group1 4096 2017-10-30 22:25 folder1
Les fichiers créés dans le dossier folder1 hériteront de l'appartenance au groupe group1 :
# touch folder1/file1 # ls -l folder1/file1 -rw-rw-r-- 1 user1 group1 0 2017-10-30 22:29 folder1/file1
Comment définir le bit SGID pour les répertoires ?
Pour définir le bit setgid sur un répertoire, utilisez la commande chmod g+s :
# chmod g+s folder1
Affichez les autorisations à l'aide de la commande ls -ld, en notant le s dans les autorisations de groupe :
# ls -ld folder1 drwxrwsr-x 2 user1 group1 4096 2017-10-30 22:32 folder1
Vous pouvez également ajouter un 2 au mode répertoires :
# chmod 2770 folder1
Qu'est-ce qu'un sticky bit sur un répertoire
Lorsque le sticky bit est défini sur un répertoire, seuls l'utilisateur root, le propriétaire du répertoire et le propriétaire d'un fichier peuvent supprimer des fichiers dans ledit répertoire.
Comment définir le bit collant
Un exemple de sticky bit est le répertoire /tmp. Utilisez la commande ls -ld /tmp pour afficher les autorisations :
# ls -ld /tmp drwxrwxrwt 24 root root 4096 2017-10-30 22:00 tmp
Le t à la fin symbolise que le sticky bit est défini. Un fichier créé dans le répertoire /tmp ne peut être supprimé que par son propriétaire ou l'utilisateur root. Par exemple, exécutez la commande suivante pour définir le sticky bit sur le dossier dossier1 :
# chmod a+t folder1
Vous pouvez également ajouter un 1 au début du mode d'un répertoire pour définir le sticky bit :
# chmod 1777 folder1
Les autorisations doivent être en lecture, en écriture et en exécution pour le propriétaire, le groupe et tous les autres, sur les répertoires dont le sticky bit est défini. Cela permet à n'importe qui d'accéder au répertoire et de créer des fichiers.
comment trouver des fichiers avec SUID/SGID mais définis
1. Pour trouver tous les fichiers avec SUID mais définis, utilisez la commande ci-dessous :
# find / -perm +4000
2. Pour trouver tous les fichiers avec le bit SGID défini, utilisez la commande ci-dessous :
# find / -perm +2000
Vous pouvez également combiner les deux commandes pour trouver à la fois SGID et SUID mais définir des fichiers.
# find / -type f \\( -perm -4000 -o -perm -2000 \\) -exec ls -l {} \\;Qu'est-ce que SUID, SGID et Sticky bit ?
Linux / UNIX :Comment trouver des fichiers avec SUID/SGID défini
Linux / UNIX :Exemples de commande find pour trouver des fichiers avec des ensembles spécifiques d'autorisationsL'ultime interview Linux questions :échange