Droits endossement fichier shell

Bonjour à tous,

Sous root, je crée un fichier test.sh, dans lequel j’ai mis :

#!/bin/sh
whoami
ls /dossier/interdit

Ensuite j’ai fait

chmod +s test.sh

Avec les tests j’ai aussi fait chmod 4555 test.sh (ça ne change rien).

Lorsque je passe sous un utilisateur lambda, j’obtiens :

lambda
ls: cannot access /dossier/interdit : Permission denied

On peut pas dire que l’uid effectif ait vraiment changé … Qu’ai-je donc loupé, je ne dois pas être très loin ! ?

Merci :slightly_smiling:

Salut,

[quote=“pascalous”]Bonjour à tous,

Je réfléchis à une solution de sauvegarde pour mon système et [/quote]
j’ai eu le réflexe d’aller voir sur le wiki où j’y ai trouver mon bonheur:023

Ma question ne porte pas sur la sauvegarde mais sur le droit d’endossement. J’ai hésité à invoquer le contexte au risque de provoquer du hors sujet

Sur la plupart des distributions (toutes ?) cette possibilité est désactivée car elle pose d’énormes problèmes de sécurité. Setuid n’est utilisable que sur des binaires pas sur des scripts.

Si je me souviens bien, il y a une protection interdisant le respect du bit suid pour l’execution d’un script, car c’est trop facile à pirater/éditer/patcher.
Pour executer un script en root, il vaut mieux accorder l’execution du script de manière plus sélective avec sudo.

Ok, je ne le savais pas, ce n’est indiqué dans aucune doc que j’ai regardée sur les droits d’endossement. Mais effectivement, pour ce que je vais faire (backup), je vais préféré le sudo car je ne veux que seul un utilisateur puisse lancer le script (par ssh).

Merci