[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Linux-31] chmod Set-User-ID droits...



Le dimanche 21 février 2021 à 17:05 +0100, Jean-Marc MONGRELET a
écrit :
> Bonjour,
> 
> J'ai créé un fichier script test.sh avec ce contenu:
> #!/bin/sh
> touch toto
> 
> J'ai donné des droits Set-User-ID et Set-Group-ID à mon script:
> $ ls -l
> total 4
> -rwsrwsr-x 1 root root 23 févr. 21 16:30 test.sh
> 
> Si j'exécute mon script cela me crée le fichier toto apparentent à 
> jean-marc:
> $ ./test.sh
> $ ls -l
> total 4
> -rwsrwsr-x 1 root      root      23 févr. 21 16:30 test.sh
> -rw-rw-r-- 1 jean-marc jean-marc  0 févr. 21 16:59 toto
> 
> Or j'avais crue comprendre que le script s’exécuterait avec les
> droits 
> root, et que donc le fichier créé devrait appartenir à root!
> 
> Qu'est que j'ai loupé ?? ou qu'est que j'ai pas compris ?
> 
> JM
> 
> -- 

Bonjour,

Il semble que tu sois dans le cas évoqué par cette page :

<https://lea-linux.org/documentations/Dev-suid_scripts>

En gros : quand tu invoques ton script, ce n'est pas lui qui est
exécuté, c'est le shell qu'il indique en première ligne, /bin/sh,
lequel interprète ton script.

Or, /bin/sh n'est pas suid. Ergo i s'exécute en tant que toi, et c'est
en tant que toi qu'il fait "tourner" ton script.

Note : la page que j'ai citée indique que pour les programmes exécutés
directement (donc compilés), c'est déjà compliqué et le suid seul ne
suffit pas.

Amicalement,
Albert.