owner=root, u+s -> trotzdem "Keine Berechtigung"?



  • hi, ich hab nen kleines test programm geschrieben:

    #include <stdlib.h>
    #include <iostream>
    #include <unistd.h>
    
    int main(int argc, char *argv[])
    {
    	system("touch /root/test");
    	std::cout<<"\n\n"<<geteuid();
    
    	return 0;
    }
    

    das dient einfach nur zum testen von suid.

    wenn ich es kompiliere, den owner auf root setze, das suid bit setze und es als anderer user ausführe bekomme ich trotzdem "Keine Berechtigung", habe keine ahnung warum..

    mein euid wird richtig als 0 (==root) ausgegeben, und führe ich das programm als root aus funktioniert es auch.

    kann mir einer sagen was ich falsch mache?

    danke,ratatatata



  • Das ist der Unterschied zwischen der euid (effective uid) und real uid.

    Mach mal ein system("whoami");



  • ok mit einem setuid(0); funktioniert alles prima..

    aber kann mir einer vielleicht erklären warum?



  • ratatatata schrieb:

    aber kann mir einer vielleicht erklären warum?

    Siehe hier in diesem Forum.


Anmelden zum Antworten