Ich habe ein einfaches Programm, um zu überprüfen, ob ein bestimmter Benutzer (1001) einen Lesezugriff auf eine bestimmte Datei hat. Der Eigentümer des Programms ist "root" und zusätzlich hat das Programm "S" (SUID) Flag -Set. Nach der Ausführung von 'sudo su' und Ausführen des Programms ist das Ergebnis korrekt. Die Funktionen "Zugriff" zeigen, dass der Benutzer 1001 keinen Zugriff auf die Datei hat.
Program user ids at start: real: 0, efective: 0, set: 0
Switch to user uid: 1001 gid: 1001
Program user id's after switch: real: 1001, efective: 1001, set: 1001
Program group id's after switch: real: 1001, efective: 1001, set: 1001
File read permission acces: -1, euidacces: -1
< /code>
Aber nach dem Anmelden als Benutzer 1000, der der Eigentümer der getesteten Datei ist und alle Rechte daran hat, ist das Ergebnis falsch.
Das Programm gibt den Benutzer 1001 zurück Read Access und alle angezeigten Nachrichten geben an, dass das Programm korrekt auf den Benutzer 1001 umgestellt wurde.Program user ids at start: real: 1000, efective: 0, set: 0
Switch to user uid: 1001 gid: 1001
Program user id's after switch: real: 1001, efective: 1001, set: 1001
Program group id's after switch: real: 1001, efective: 1001, set: 1001
File read permission acces: 0, euidaccess: 0
< /code>
Wo ist das [url=viewtopic.php?t=11587]Problem[/url] ?? Ich habe einen Fehler in der Bibliothek gefunden?
Das Programm wird zusammengestellt und unter Ubuntu 22.04 ausgeführt. 22.04) < /p>
Programmquelle mit 'GCC Test.c -o test2': < /p>
kompiliert#define _GNU_SOURCE
#include
#include
#include
#include
#include
int main(int argc, char **argv) {
uid_t uid = 1001, ruid, euid, suid;
uid_t rgid, egid, sgid;
const char *path = "/backed11/test2.bin";
// Output from ls: -rw-rw---- 1 1000 1000 16401 gru 30 11:49 /backed11/test2.bin
struct passwd *pw = getpwuid(uid);
if(pw == NULL) {
printf("Incorrect user ID: %d errno: %d\n", uid, errno);
return(errno);
}
if(getresuid(&ruid, &euid, &suid) < 0) {
printf("getresuid error: %d\n", errno);
return(errno);
}
printf("Program user ids at start: real: %d, efective: %d, set: %d\n", ruid, euid, suid);
printf("Switch to user uid: %d gid: %d\n", pw->pw_uid, pw->pw_gid);
int st = setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid);
if(st < 0) {
printf("setregid error for gid %d : %d\n", pw->pw_gid, errno);
return(errno);
}
st = setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid);
if(st < 0) {
printf("setreuid error: %d\n", errno);
return(errno);
}
if(getresuid(&ruid, &euid, &suid) < 0) {
printf("getresuid error: %d\n", errno);
return(errno);
}
if(getresgid(&rgid, &egid, &sgid) < 0) {
printf("getresgid error: %d\n", errno);
return(errno);
}
printf("Program user id's after switch: real: %d, efective: %d, set: %d\n", ruid, euid, suid);
printf("Program group id's after switch: real: %d, efective: %d, set: %d\n", rgid, egid, sgid);
st = access(path, R_OK);
int st2 = euidaccess(path, R_OK);
printf("File read permission acces: %d, euidaccess: %d\n", st, st2);
return 0;
}
Ich habe ein einfaches Programm, um zu überprüfen, ob ein bestimmter Benutzer (1001) einen Lesezugriff auf eine bestimmte Datei hat. Der Eigentümer des Programms ist "root" und zusätzlich hat das Programm "S" (SUID) Flag -Set. Nach der Ausführung von 'sudo su' und Ausführen des Programms ist das Ergebnis korrekt. Die Funktionen "Zugriff" zeigen, dass der Benutzer 1001 keinen Zugriff auf die Datei hat.[code]Program user ids at start: real: 0, efective: 0, set: 0 Switch to user uid: 1001 gid: 1001 Program user id's after switch: real: 1001, efective: 1001, set: 1001 Program group id's after switch: real: 1001, efective: 1001, set: 1001 File read permission acces: -1, euidacces: -1 < /code> Aber nach dem Anmelden als Benutzer 1000, der der Eigentümer der getesteten Datei ist und alle Rechte daran hat, ist das Ergebnis falsch. Das Programm gibt den Benutzer 1001 zurück Read Access und alle angezeigten Nachrichten geben an, dass das Programm korrekt auf den Benutzer 1001 umgestellt wurde.Program user ids at start: real: 1000, efective: 0, set: 0 Switch to user uid: 1001 gid: 1001 Program user id's after switch: real: 1001, efective: 1001, set: 1001 Program group id's after switch: real: 1001, efective: 1001, set: 1001 File read permission acces: 0, euidaccess: 0 < /code> Wo ist das [url=viewtopic.php?t=11587]Problem[/url] ?? Ich habe einen Fehler in der Bibliothek gefunden?
Das Programm wird zusammengestellt und unter Ubuntu 22.04 ausgeführt. 22.04) < /p> Programmquelle mit 'GCC Test.c -o test2': < /p> kompiliert#define _GNU_SOURCE #include #include #include #include #include
Ich verwende Node JS für das Backend und EJS-Vorlage für mein Frontend. Im Grunde erstelle ich ein Salon-Terminsystem, bei dem Benutzer ein Datum auswählen und auf der Grundlage des ausgewählten...
Ich implementiere eine OpenAPI -Dokumentation in einem Frühlings -Cloud -Gateway -Dienst, der zu mehreren Microservices weiterleitet. Ich habe das Gateway mithilfe von GruppedOpenAPI -Dokumentation...
Ich habe es mit in Listen versucht, funktioniert aber immer noch nicht
for bullet in self.bullets :
bullet.update(self.bullet_speed, self.bullets)
for obstacle in game.obstacle_manager.obstacles :...
Ich versuche, ein Modal mit dem nativen Element mit einem verschwommenen Hintergrund anzuzeigen. Es funktioniert perfekt in Firefox, aber im Chrom ist der Hintergrund nur halbtransparent, ohne eine...