Comment fonctionne le sticky bit?

SUID

Le sticky bit appliqué aux programmes exécutables signalant au système de conserver une image du programme en mémoire après la fin du programme.

Mais je ne sais pas ce quil est stocké en mémoire. Et comment je peux les voir, dans ce cas.?

Commentaires

Réponse

Cest probablement lune de mes choses les plus ennuyeuses que les gens gâchent tout le temps. Le bit SUID / GUID et le sticky-bit sont deux choses complètement différentes.

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

arrière-plan

extrait

Les lettres rwxXst sélectionnent les bits du mode fichier pour le utilisateurs concernés: lire (r), écrire (w), exécuter (ou rechercher des répertoires) (x), exécuter / rechercher uniquement si le fichier est un répertoire ou a déjà lautorisation dexécution pour un utilisateur (X), définir lID dutilisateur ou de groupe lors de lexécution (s) , indicateur de suppression restreinte ou bit fixe ( t) .

SUID / GUID

Quest-ce que la page de manuel ci-dessus essayer de dire est que la position que le bit x prend dans le rwxrwxrwx pour lutilisateur octal (1er groupe de rwx) et le groupe octal (2ème groupe de rwx) peut prendre un état supplémentaire où le x devient un s. Lorsque cela se produit, ce fichier lorsquil est exécuté (sil sagit « dun programme et pas seulement dun script shell) sexécutera avec les autorisations du propriétaire ou du groupe du fichier.

Donc, si le fichier appartient à root et le bit SUID est activé, le programme sexécutera en tant que root. Même si vous lexécutez en tant quutilisateur normal. La même chose sapplique au bit GUID.

extrait

BITS SETUID ET SETGID

chmod efface le bit set-group-ID dun fichier normal si lID de groupe du fichier le fait ne correspond pas à lID de groupe effectif de lutilisateur ou à lun des ID de groupe supplémentaires de lutilisateur, à moins que lutilisateur ne dispose des privilèges appropriés. Des restrictions supplémentaires peuvent entraîner lignorance 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 lappel système chmod sous-jacent. En cas de doute, vérifiez le comportement du système sous-jacent.

chmod préserve les bits set-user-ID et set-group-ID dun répertoire, sauf indication contraire explicite. Vous pouvez définir ou effacer les bits avec symbolique des modes comme u + s et gs, et vous pouvez définir (mais pas effacer) les bits avec un mode numérique.

Exemples SUID / GUID

no suid / guid – seuls 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 

suid & bit exécutable de lutilisateur activé (minuscules) – les bits rwsr-xrx 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é & 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 

guid & group « bit exécutable 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é & 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 

sticky bit

Le sticky bit sur le lautre main est désignée par t, comme avec le répertoire /tmp:

$ 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 « cest ce quil implique vraiment. Lorsque ce bit de mode est activé, il crée un répertoire tel que les utilisateurs ne peuvent supprimer que les fichiers & répertoires dont ils sont propriétaires.

extrait

DRAPEAU DE SUPPRESSION RESTRICTED OU STICKY BIT

Lindicateur de suppression restreinte ou sticky bit est un seul bit, dont linterpré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 quils ne soient propriétaires du fichier ou du répertoire; cest ce quon appelle lindicateur de suppression restreinte pour le répertoire, et se trouve généralement sur les répertoires accessibles en écriture comme / tmp.Pour les fichiers normaux sur certains systèmes plus anciens, le bit enregistre limage de texte du programme sur le périphérique déchange afin quil se charge plus rapidement lors de lexécution; cela sappelle le bit collant.

Commentaires

  • En fait, le sticky-bit pouvait auparavant être appliqué aux exécutables, ce qui les faisait rester dans léchange après leur premier chargement. Cela pourrait sauver beaucoup dutilisation inutile du disque / réseau (NFS) et du processeur pour les programmes qui étaient très utilisés. Cependant, ni Linux ni la plupart (tous?) des systèmes Unix ne le prennent plus en charge (il a été supprimé du noyau). Il ' s " sticky ", car lexécutable coincé dans swap. De plus, il était utilisé pour les répertoires comme vous décrivez.
  • En fait, " très utilisé ou très gros " serait une meilleure description. Rappelez-vous que mon université avait le navigateur Web Netscape comme " sticky " sur leur ordinateur HP-UX en 1995. Des petits programmes donc très souvent utilisés (par exemple. les commandes système exécutées fréquemment par cron) et les grands programmes (par exemple Netscape) étaient les principaux candidats à faire " sticky ". Dans les deux cas, les recharger constamment à partir du disque / NFS serait un gaspillage.
  • Les programmes Sticky-bit étaient censés rester résidents dans la RAM, pas dans le swap (le chargement dune image à partir dun fichier déchange nest pas ' t beaucoup plus rapide que de le charger à partir dun disque du système de fichiers). Il était destiné aux commandes essentielles au niveau du système dexploitation telles que ls. De toute évidence, seul le superutilisateur peut définir le sticky bit sur un fichier. Il est devenu moins important après lintroduction de la mémoire virtuelle et des bibliothèques partagées, et dautant plus que les pagers sont devenus plus intelligents et peuvent décider de manière dynamique quelles pages garder résident.
  • Et comme la propriété sticky navait aucun sens pour un répertoire, la même chose Un bit du masque de permissions a été plus tard interprété pour modifier la sémantique traditionnelle de création de fichier pour les répertoires.
  • @alexis: À lorigine, les programmes sticky bit étaient conservés dans lespace déchange. Cétait beaucoup plus rapide que la lecture à partir du système de fichiers car la lecture des images de fichiers déchange était des secteurs contigus et pouvait donc être lue principalement de manière asynchrone. Avec les premiers systèmes de fichiers, il ny avait aucun secteur " run lengths " et la plupart des premiers pilotes de système de fichiers lisent un secteur à la fois même si les secteurs se trouve être consécutif. Le résultat sur un PDP-40 était que les programmes persistants semblaient se charger instantanément tandis que les programmes non collants prenaient la seconde ou deux habituelles. Je pense que nous navons eu que ed collant.

Réponse

« Le bit collant appliqué aux programmes exécutables signalant au système de garder une image du programme en mémoire après la fin de lexécution du programme. »

Je pense que cette information est assez obsolète, aujourdhui la plupart des Unix modernes ignorent cela. Sous Linux, le sticky bit nest pertinent que pour les répertoires. Voir ici et le très instructif article Wikipedia .

Quoi quil en soit, dans cet ancien comportement limage (seulement le « code », pas les données) nétaient conservées que dans la mémoire virtuelle – normalement échangées, pas dans la mémoire réelle, afin de les exécuter plus rapidement la prochaine fois.

Réponse

Que sont les sticky bits?

Un sticky bit est un bit dautorisation défini sur un répertoire qui nautorise que le propriétaire du fichier dans t hat ou lutilisateur root pour supprimer ou renommer le fichier. Aucun autre utilisateur na les privilèges nécessaires pour supprimer le fichier créé par un autre utilisateur.

Il sagit dune mesure de sécurité pour éviter la suppression de dossiers critiques et de leur contenu (sous-répertoires et fichiers), bien que dautres utilisateurs aient autorisations complètes.

Commentaires

  • Que ' nest pas correct: en.wikipedia.org/wiki/Sticky_bit
  • @AB Cela me semble assez précis, presque au point de paraphraser le début de larticle Wikpedia que vous citez. Quel est le problème de '?
  • Je dirais que la réponse est incomplète. " Sticky " indique également que lexécutable serait conservé dans lespace déchange pour quil sexécute plus rapidement. Maintenant, cest une histoire ancienne, mais dans les anciens systèmes de fichiers, les pilotes utilisaient pour lire un secteur à la fois, même si les secteurs étaient consécutifs. Cela rendait les exécutables non collants lents, la rigidité avait beaucoup de sens à ce moment-là.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *