[C] proggie om onder unix passwd te gebruiken voor niet root

Pagina: 1
Acties:

  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
ik heb dit half gepikt en aangepast:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdlib.h>
#include </usr/include/sys/types.h>
#include </usr/include/sys/unistd.h>
int main(int argc, char* argv[]) {
        setreuid(geteuid(),geteuid());
        if (argc == 3) {
                int returnvalue = -1;
                char* buff = (char*) malloc(1000 * sizeof(char));
                sprintf(buff, "passwd --stdin %s <  %s", argv[1], argv[2]);
                returnvalue =  system(buff);
                free( buff );
                return returnvalue;
        }
        return -1;
}


en had dan het idee dat als je dit als root compileerde en vervolgens door een niet root user liet uitvoeren dat je dan passwd kon gebruiken...

helaas levert dit een"only root can do that" msg op als ordinairy user.

het idee was eigenlijk om php dit proggie te laten uitvoeren zodat users hun passwd via een webpage konden aanpassen.

iemand een idee hoe dit goed te doen?

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

passwd kan toch sowieso gebruikt worden door users? :)

Nadeel is alleen dat ze dan wel eerst hun eigen password moeten intikken en het lijkt me ERG gevaarlijk als je dat doet, een klein foutje levert op dat iedereen ieders password kan wijzigen dan.

Verwijderd

ACM schreef op 28 augustus 2002 @ 17:06:
passwd kan toch sowieso gebruikt worden door users? :)

Nadeel is alleen dat ze dan wel eerst hun eigen password moeten intikken en het lijkt me ERG gevaarlijk als je dat doet, een klein foutje levert op dat iedereen ieders password kan wijzigen dan.
Nee, passwd voor gewone users is alleen eigen passwd wijzigen.
Met passwd door root kan root iederren z'n passwd wijzigen.

Voor de topicstarter: Is het een idee om een daemon onder root te draaien die wacht op input van PHP?
Of kan dat ding misschien mbv sudo onder root draaien? Een user anders dan root kan andermans wachtwoorden *niet* wijzigen.

Ter info: Met Samba kan je je wachtwoord wijzigen als je een samba PDC hebt, maar Samba draait ook onder root.

  • zerok
  • Registratie: November 2001
  • Laatst online: 31-08 23:45

zerok

geen

zo wie zo wrom wil je dat gebruikers root rechten krijgen???
en wrom zet je dan niet de rechten zo dat eigenaar een groep root zijn en zet die bit die zorgt dat die als root gedraait kan worden (damn ben ff de naam kwijt :) )
Is niet aan te raden maar dat is je plan volgens mij toch al niet.

"never argue with idiots they drag you down to their level and beat you with experience" dilbert


  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 22:56

odysseus

Debian GNU/Linux Sid

Als je zoiets echt wilt dan kun je inderdaad eens kijken of je dat programma SUID kunt maken. Ik zou echter nog eens heel goed naar je ontwerp kijken, want als je hier een foutje maakt dan is het snel afgelopen met de veiligheid van je systeem.

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


Verwijderd

Ik denk dat het veel veiliger is om expect te gebruiken om een su te maken en via expect de passwords uptedaten (mogelijk kan je daar weer exect voor gebruiken)

dus zoiets:
pseudocode:
code:
1
2
3
4
5
6
7
8
9
10
11
#!/bin/expect -f
spawn /bin/su - $user -c /usr/local/bin/changepass.sh $oldpasswd $newpasswd
expect Password:
send "$oldpassword"
expect {
       "\\[1\]"  {exit}
       "Sorry"  {<some fix>}
       }
expect eof
exec sleep 2
exit


Hoewel ik moet zeggen dat ik dit sowieso niet veilig vind... bedoel passwords via een webinterface veranderen

Verwijderd

hiervoor moet je eigenlijk een rapper schrijven, hiermee draait php als root, bij bepaalde (toegestane) acties. Om dit goed en helemaal veilig te doen is niet zo makkelijk, ik raad het je niet aan... misschien is er wel ergens een rapper te vinden...?

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
een rapper? En die gaat met zijn gouden ketting en zijn 9mm de wachtwoorden bewaken? :)

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 00:35

Altaphista

1. check manual, 2. ask

zneek schreef op 29 augustus 2002 @ 17:46:
een rapper? En die gaat met zijn gouden ketting en zijn 9mm de wachtwoorden bewaken? :)
LOL :)

Je gaat het pas zien als je het doorhebt.

Pagina: 1