Aktivieren eines SetUid -CPP -Programms zum Ausführen eines Befehls - "Gruppen" zeigt die Realuser -Gruppen anstelle einC++

Programme in C++. Entwicklerforum
Anonymous
 Aktivieren eines SetUid -CPP -Programms zum Ausführen eines Befehls - "Gruppen" zeigt die Realuser -Gruppen anstelle ein

Post by Anonymous »

Ich versuche, ein CPP -Programm zu schreiben, das als "sudo" für ein gesichtsloses Konto fungiert. Grundsätzlich möchte ich, dass der Befehl eher als gesichtsloses Konto ausgeführt wird als als der Benutzer, der den Befehl aufruft. Ich beabsichtige, dies zu tun, indem ich ein CPP -Programm schreibe, das ich kompilieren, es auf das gesichtslose Konto korrigieren und das SetUid -Bit festlegen werde. Dies funktioniert fast ausschließlich, aber ich kann nicht den ganzen Weg dorthin bekommen, weil es anscheinend die Erinnerung an den Realuser gibt, die die Ergebnisse korrumpieren. Dies ist der Codeblock, der das SetUid ausführt: < /p>
uid_t euid, ruid;

ruid = getuid();
euid = geteuid();
seteuid(ruid);

int childPid = fork();
if(childPid == 0){
seteuid(euid);
execvp(command, arguments);
} else {
wait(childPid);
}

< /code>
Nach dem Kompilieren des Codes, der Studierung und dem Einstellen des SetUid -Bits als Facelss sieht es so aus: < /p>
[user@home]$ ls -ltr ../bin/.sudo
-rwsr-xr-x 1 cadtools vendor_tools 13224 Feb 21 18:23 ../bin/.sudo
[user@home]$
< /code>
Wenn ich den Code als meinen Benutzernamen ausführe, berichtet es korrekt "whoami" als gesichtsloses Konto: < /p>
[user@home]$ ../bin/.sudo /usr/bin/whoami
cadtools
[user@home]$

< /code>
Aber das Ergebnis von "Gruppen" ist nicht korrekt. Das Ergebnis von "Gruppen" sind die Benutzernamengruppen, nicht die gesichtslosen Konten: < /p>
[user@home]$ ../bin/.sudo /usr/bin/groups
domain users vpn_users linux-admins hw engineering wifi_eng rtm_admins hw_er
[user@home]$ /usr/bin/groups
domain users vpn_users linux-admins hw engineering wifi_eng rtm_admins hw_er
[user@home]$ /usr/bin/groups cadtools
cadtools : domain users vendor_tools engineering hw
[user@home]$

< /code>
Warum ist der execvp () rufen Sie "Alles" als gesichtsloses Konto? , aber das Ergebnis ist das gleiche.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post