GNU/Linux >> Tutoriels Linux >  >> Linux

Questions d'entretien Linux - Autorisations spéciales (SUID, SGID et sticky bit)

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+s
Remarque :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


Linux
  1. Aide-mémoire pour les utilisateurs Linux et les autorisations

  2. Linux – Suid n'a aucun effet sur les répertoires avec Linux ?

  3. Qu'est-ce que SUID, SGID et Sticky bit ?

  4. Linux / UNIX :Comment trouver des fichiers dont le SUID/SGID est défini

  5. Questions d'entretien :Gestionnaire de packages Linux (RPM)

Comment trouver des fichiers avec des autorisations SUID et SGID sous Linux

25 questions et réponses d'entrevue sur les scripts Shell Linux

Comment définir la date et l'heure sous Linux

Autorisations de fichiers spéciales sous Linux :SUID, GUID et Sticky Bit

Questions d'entretien Linux - Autorisations de base sur les fichiers et les répertoires

Questions d'entrevue Linux - Impression Linux (CUPS)