Page 1 sur 1
[suid bit] ne fonctionne pas
Publié : sam. 12 déc. 2020, 20:30
par AchilleFraisse
bonjour,
je n'arrive pas à prendre les droits d'un autre user avec le suid bit.
j'ai un programme qui a les droits user1 et je souhait l'executer avec user2 :
Code : Tout sélectionner
[user2] $ ll test.sh
-rwsr-xr-x 1 user1 user1 33 Dec 12 20:30 test.sh
[user2] $ cat test.sh
#/bin/sh
echo $UID
echo whoami
[user2] $ ./test.sh
1001
user2
[user1] $ echo UID
1000
Alors que j'aimerais que lorsque j'exécute test.sh, UID valle 1000 et whoami valle user1
Re: [suid bit] ne fonctionne pas
Publié : sam. 12 déc. 2020, 21:18
par benjarobin
Bonjour,
Tu ne peux pas suid un script. Tu ne peux le faire que sur un vrai exécutable (un ELF binaire).
Re: [suid bit] ne fonctionne pas
Publié : sam. 12 déc. 2020, 21:33
par laurent85
Bonjour,
La raison est qu'avec un script c'est l'interpréteur donné en première ligne du script qui est exécuté, en l'occurence ici /bin/sh qui appartient à root et ne doit surtout pas avoir le suid.
Re: [suid bit] ne fonctionne pas
Publié : sam. 12 déc. 2020, 21:36
par AchilleFraisse
Ok merci.
Mais ca me fait pareil sur /bin/bash. Pourtant c'est bien un ELF :
Code : Tout sélectionner
[user1] $ echo $UID
1000
[user1] $ sudo chmod 4755 /bin/bash
[sudo] Mot de passe de user1 :
[user1] $ ll /bin/bash
-rwsr-xr-x 1 root root 906012 21 mai. 18:15 /bin/bash*
[user1] $ /bin/bash
$ echo $UID
1000
$ exit
[user1] $ /bin/bash -p
$ echo $UID
1000
$ exit
Re: [suid bit] ne fonctionne pas
Publié : sam. 12 déc. 2020, 21:51
par laurent85
Ouch

Il ne faut surtout pas faire ça. Remets les permissions de bash.
Utilise sudo de cette façon:
Re: [suid bit] ne fonctionne pas
Publié : sam. 12 déc. 2020, 22:07
par benjarobin
En effet ne surtout fait pas cela !!!!! Et en effet sudo est fait pour cela !
bash se protège de ce genre de modification via suid. Il annule la modification faite via suid...
Re: [suid bit] ne fonctionne pas
Publié : dim. 13 déc. 2020, 08:09
par AchilleFraisse
Mais pareil avec vim ça ne marche pas :
Code : Tout sélectionner
[user1] $ sudo chmod 4755 /bin/vim
[user1] $ vim
... :!echo $UID
1000
Appuyez sur ENTRÉE ou tapez une commande pour continuer
en faite j'aimerais un programme pour ouvrir une session root pour n'importe qu'elle utilisateur avec un mot de passe commum.
par exemple j'ain un mdp sha256 dans /etc/rootpass, puis je rentre un mot de passe dans un programme, il le hash et le compare avec /etc/rootpass, et si ok, il m'ouvre un shell root. Mais ça sans divulguer le mot de passe root aux utilisateurs.
Code : Tout sélectionner
[user1] $ ./shell_root
Mot de passe : toto
[root] #
[user2] $ ./shell_root
Mot de passe : toto
[root] #
Re: [suid bit] ne fonctionne pas
Publié : dim. 13 déc. 2020, 09:38
par benjarobin
Je t'assure que suid fonctionne, sauf que le plupart des programmes de défendent / se protègent d'une telle modification. Car tu ne dois surtout pas faire cela !!!
Ton besoin est complètement capillotracté. Pourquoi vouloir réinventer la roue en la faisant carré ? Pourquoi vouloir créer des milliers de failles de sécurité sur ton système, car désolé mais si tu pose la question ici pour faire une telle chose c'est que tu ne maîtrise pas ce genre de choses au niveau sécurité.
Donc ton besoin peut être résumé à : je veux pouvoir avoir 2 mots de passe Root. La question que je te pose est pourquoi ? Pourquoi ne pas donner le mot de passe Root car ils pourront faire la même chose s'il l'avait...