GNU/Linux >> Tutoriels Linux >  >> Linux

Comment fonctionne le Sticky Bit ?

SUID

Le morceau collant appliqué aux programmes exécutables signalant au système de conserver une image du programme en mémoire après la fin de l'exécution du programme.

Mais je ne sais pas ce qu'il est stocké dans la mémoire. Et comment je peux les voir, dans ce cas.?

Réponse acceptée :

C'est probablement l'une de mes choses les plus ennuyeuses que les gens gâchent tout le temps. Le bit SUID/GUID et le sticky-bit sont 2 choses complètement différentes.

Si vous faites un man chmod vous pouvez en savoir plus sur le SUID et les sticky-bits. La page de manuel est également disponible ici.

contexte

extrait

Les lettres rwxXst sélectionnez les bits du mode fichier pour les utilisateurs concernés :lecture
(r), écriture (w), exécution (ou recherche de répertoires) (x), exécution/recherche uniquement
si le fichier est un répertoire ou déjà a l'autorisation d'exécution pour certains utilisateurs
(X), définit l'ID d'utilisateur ou de groupe lors de l'exécution(s) , indicateur de suppression restreinte ou bit collant (t) .

SUID/GUID

Ce que la page de manuel ci-dessus essaie de dire, c'est que la position que prend le bit x dans le rwxrwxrwx pour l'octal utilisateur (1er groupe de rwx) et le groupe octal (2e groupe de rwx) peut prendre un état supplémentaire où le x devient un s. Lorsque cela se produit, ce fichier lorsqu'il est exécuté (s'il s'agit d'un programme et pas seulement d'un script shell) s'exécutera avec les autorisations du propriétaire ou du groupe du fichier.

Ainsi, si le fichier appartient à root et que le bit SUID est activé, le programme s'exécutera en tant que root. Même si vous l'exécutez en tant qu'utilisateur régulier. La même chose s'applique au bit GUID.

extrait

BITS SETUID ET SETGID

chmod efface le bit set-group-ID d'un fichier normal si l'ID de groupe du fichier
ne correspond pas à l'ID de groupe effectif de l'utilisateur ou à l'un des
ID de groupe supplémentaires de l'utilisateur, à moins que l'utilisateur ne dispose des privilèges appropriés.
Des restrictions supplémentaires peuvent entraîner l'ignorance des bits set-user-ID et set-group-ID
de MODE ou RFILE. Ce comportement dépend de la stratégie
et de la fonctionnalité de l'appel système chmod sous-jacent. En cas de doute,
vérifiez le comportement du système sous-jacent.

chmod conserve les bits set-user-ID et set-group-ID d'un répertoire à moins que
vous ne spécifiiez explicitement le contraire. Vous pouvez définir ou effacer les bits avec
des modes symboliques comme u+s et g-s, et vous pouvez définir (mais pas effacer) les bits
avec un mode numérique.

Exemples SUID/GUID

pas de suid/guid – juste les bits rwxr-xr-x sont définis.

$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan  9 01:01 b.pl

bit exécutable suid et utilisateur activé (minuscules) – les bits rwsr-x-r-x sont définis.

$ chmod u+s b.pl 
$ ls -lt b.pl 
-rwsr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suid activé et bit exécutable désactivé (S majuscule) – les bits rwSr-xr-x sont définis.

$ chmod u-x b.pl
$ ls -lt b.pl 
-rwSr-xr-x 1 root root 179 Jan  9 01:01 b.pl

bit exécutable du guid et du groupe activé (minuscules) – les bits rwxr-sr-x sont définis.

$ chmod g+s b.pl
$  ls -lt b.pl 
-rwxr-sr-x 1 root root 179 Jan  9 01:01 b.pl

guid activé et bit exécutable désactivé (S majuscule) – les bits rwxr-Sr-x sont définis.

$ chmod g-x b.pl
$  ls -lt b.pl 
-rwxr-Sr-x 1 root root 179 Jan  9 01:01 b.pl

morceau collant

Le bit collant, d'autre part, est noté t , comme avec le /tmp répertoire :

$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp

Ce bit aurait toujours dû être appelé le "bit de suppression restreinte" étant donné que c'est ce qu'il implique vraiment. Lorsque ce bit de mode est activé, il crée un répertoire tel que les utilisateurs ne peuvent y supprimer que les fichiers et répertoires dont ils sont les propriétaires.

En relation :Corbeille avec 80 000 fichiers. « Vider la corbeille » ne fonctionne pas ! ?

extrait

DRAPEAU DE SUPPRESSION RESTREINTE OU STICKY BIT

L'indicateur de suppression restreinte ou sticky bit est un bit unique, dont
l'interprétation dépend du type de fichier. Pour les répertoires, il
empêche les utilisateurs non privilégiés de supprimer ou de renommer un fichier dans le répertoire
à moins qu'ils ne soient propriétaires du fichier ou du répertoire ; c'est ce qu'on appelle
l'indicateur de suppression restreinte pour le répertoire, et on le trouve généralement sur les répertoires accessibles en écriture par le monde comme /tmp. Pour les fichiers normaux sur certains
systèmes plus anciens, le bit enregistre l'image texte du programme sur le périphérique d'échange
afin qu'il se charge plus rapidement lors de son exécution ; c'est ce qu'on appelle le bit collant.


Linux
  1. Qu'est-ce que NGINX ? Comment ça marche?

  2. Comment fonctionne Awk '!a[$0]++' ?

  3. Le but de .bashrc et comment ça marche ?

  4. Comment fonctionne la commande 'ls' sous Linux/Unix ?

  5. Comment fonctionne copy_from_user du noyau Linux en interne ?

Comment fonctionne la mémoire d'échange sous Linux ?

Comment fonctionne l'interface de bouclage

Comment fonctionne le modèle <( cmd ) dans bash ?

Pourquoi le bit setuid fonctionne-t-il de manière incohérente ?

Comment fonctionne une interface graphique Linux au niveau le plus bas ?

Comment fonctionne l'affichage de Linux ?