GNU/Linux >> Tutoriels Linux >  >> Linux

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

Il existe 3 autorisations spéciales disponibles pour les fichiers et répertoires exécutables. Ce sont :

1. Autorisation SUID
2. Autorisation SGID
3. Morceau collant

Identification de l'utilisateur défini (SUID)

Avez-vous déjà pensé à la façon dont un utilisateur non root peut changer son propre mot de passe lorsqu'il n'a pas l'autorisation d'écriture sur le fichier /etc/shadow. hmmm… intéressant n'est-ce pas? Eh bien pour comprendre l'astuce vérifiez l'autorisation de la commande /usr/bin/passwd :

# ls -lrt /usr/bin/passwd
-r-sr-sr-x   1 root     sys        31396 Jan 20  2014 /usr/bin/passwd

– Si vous vérifiez attentivement, vous trouverez les 2 S dans le champ d'autorisation. Le premier s représente le SUID et le second représente le SGID.
– Lorsqu'une commande ou un script avec le bit SUID défini est exécuté, son UID effectif devient celui du propriétaire du fichier, plutôt que celui de l'utilisateur qui l'exécute.
– Un autre bon exemple de SUID est la commande su :

# ls -l /bin/su 
-rwsr-xr-x-x 1 root user  16384 Jan 12 2014 /bin/su

- L'autorisation setuid affichée sous la forme d'un "s" dans le champ d'exécution du propriétaire.

Comment définir SUID sur un fichier ?

# chmod 4555 [path_to_file]
Remarque :
Si un "S" majuscule apparaît dans le champ d'exécution du propriétaire, cela indique que le bit setuid est activé et que le bit d'exécution "x" du propriétaire du fichier est désactivé ou refusé.

Identification de groupe d'ensembles (SGID)

Autorisation SGID sur le fichier exécutable

- L'autorisation SGID est similaire à l'autorisation SUID, la seule différence est - lorsque le script ou la commande avec SGID activé est exécuté, il s'exécute comme s'il était membre du même groupe dont le fichier est membre.

# ls -l /usr/bin/write
-r-xr-sr-x  1   root tty 11484 Jan 15 17:55 /usr/bin/write

- L'autorisation setgid s'affiche sous la forme d'un "s" dans le champ d'exécution du groupe.

Remarque :
– Si une lettre minuscule "l" apparaît dans le champ d'exécution du groupe, cela indique que le bit setgid est activé et que le bit d'exécution du groupe est désactivé ou refusé.

Comment définir le GUID sur un fichier ?

# chmod 2555 [path_to_file]

SGID sur un répertoire

– Lorsque l'autorisation SGID est définie sur un répertoire, les fichiers créés dans le répertoire appartiennent au groupe dont le répertoire est membre.
– Par exemple, si un utilisateur disposant d'une autorisation d'écriture dans le répertoire y crée un fichier, ce fichier est membre du même groupe que l'annuaire et non du groupe de l'utilisateur.
– Ceci est très utile pour créer des annuaires partagés.

Comment définir le SGID sur un répertoire

# chmod g+s [path_to_directory]

Bout collant

– Le sticky bit est principalement utilisé sur les répertoires partagés.
– Il est utile pour les répertoires partagés tels que /var/tmp et /tmp car les utilisateurs peuvent créer des fichiers, lire et exécuter des fichiers appartenant à d'autres utilisateurs, mais ne sont pas autorisés à supprimer des fichiers appartenant à d'autres utilisateurs.
– Par exemple, si l'utilisateur bob crée un fichier nommé /tmp/bob, l'autre utilisateur tom peut ne pas supprimer ce fichier même lorsque le répertoire /tmp a l'autorisation de 777. Si le sticky bit n'est pas défini, alors tom peut supprimer /tmp/bob, car le fichier /tmp/bob hérite des autorisations du répertoire parent.
– utilisateur root (Bien sûr !) et le propriétaire des fichiers peut supprimer ses propres fichiers.

Exemple de bit collant :

# ls -ld /var/tmp
drwxrwxrwt  2   sys   sys   512   Jan 26 11:02  /var/tmp
- T refers to when the execute permissions are off.
- t refers to when the execute permissions are on.

Comment définir l'autorisation de sticky bit ?

# chmod +t [path_to_directory]
or 
# chmod 1777 [path_to_directory]


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

  2. Autorisations Linux :SUID, SGID et sticky bit

  3. Qu'est-ce que Sticky Bit, SUID et SGID sous Linux

  4. Qu'est-ce que NFS et comment l'installer sous Linux

  5. Qu'est-ce qu'un fichier .pid et que contient-il ?

Commande de fichier Linux :que fait-elle et comment l'utiliser

Qu'est-ce qu'EFS (Elastic File System) dans AWS et comment l'utiliser

Autorisations et propriété des fichiers Linux expliquées avec des exemples

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

Un gars Windows dans un monde Linux :utilisateurs et autorisations de fichiers

Qu'est-ce qu'un fichier .sh ?