Bases de Linux et de la ligne de commande

Sur de nombreux systèmes Linux, « ls -l /usr/bin/passwd » affiche « -rwsr-xr-x 1 root root ... ». Quelle est la signification du « s » placé à la position de l'exécution du propriétaire ?

  1. Asetuid est positionné : quel que soit l'utilisateur qui le lance, le programme s'exécute avec les droits du propriétaire du fichier (ici root)
  2. BLe sticky bit est positionné : les utilisateurs autres que le propriétaire et root ne peuvent ni supprimer ni renommer ce fichier
  3. CIl indique que ce fichier est une bibliothèque partagée, qui est seulement appelée par d'autres programmes et ne peut pas être exécutée directement comme une commande
Afficher la réponse et l'explication

Réponse : A. setuid est positionné : quel que soit l'utilisateur qui le lance, le programme s'exécute avec les droits du propriétaire du fichier (ici root)

s indique que le bit setuid (set user ID) et le droit d'exécution sont tous deux positionnés : le programme s'exécute alors avec les droits du propriétaire du fichier, et non avec ceux de l'utilisateur qui l'a lancé. Quand un utilisateur ordinaire change son propre mot de passe, passwd doit mettre à jour /etc/shadow, où seul root peut écrire : c'est pourquoi il s'agit d'un programme setuid root. Un défaut dans un programme setuid peut donner à un utilisateur ordinaire un point d'appui pour obtenir les droits de root : il ne faut donc pas positionner ce bit à la légère. En octal, il correspond à la position 4000, et chmod 4755 donne -rwsr-xr-x.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de Linux et de la ligne de commande

  1. Si l'on exécute dans l'ordre les commandes ci-dessus, quel contenu affiche le dernier cat ?
  2. Comme ci-dessus, dans un répertoire où a.txt existe et nofile n'existe pas, on exécute la dernière commande. Quel est le résultat ?
  3. Dans la session ci-dessus, quelle valeur affiche la dernière commande ?
  4. Dans la session ci-dessus, quelles lignes affiche le dernier grep ?
  5. Les choix sont donnés sans les espaces en début de ligne. Dans la session ci-dessus, quelle ligne affiche le dernier enchaînement de commandes ?