chmod u+s hat keinen Effekt [gelöst]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
DaCoda
Beiträge: 172
Registriert: 09.07.2019 21:58:10

chmod u+s hat keinen Effekt [gelöst]

Beitrag von DaCoda » 05.12.2023 10:19:40

Wenn man chmod u+s auf eine ausführbare Datei anwendet, wird die Datei immer mit dem Eigentümer der Datei ausgeführt.
Das Programm sudo wechselt auf diese Weise den Benutzer zu root, was man mit ls -la `which sudo` verifizieren kann.
Des weiteren wird chmod +s hier erklärt (erste Antwort).

Also das ist mein Code (test.c):

Code: Alles auswählen

#include <stdio.h>
#include <unistd.h>

void main()
{
    printf("uid: %i\n", getuid());
}
Dann habe ich folgenes ausgeführt:

Code: Alles auswählen

gcc test.c
sudo chown root a.out
sudo chmod u+s a.out
ls -la zeigt dann an (das passt soweit):

Code: Alles auswählen

-rwsrwxr-x 1 root user1 16000 Dez  5 10:07 a.out
Wenn ich allerdings ./a.out ausführe ist die Ausgabe

Code: Alles auswählen

uid: 1000
Und das ist das Problem, da 1000 ja nicht root ist. Eigentlich müsste er doch sagen uid: 0 oder nicht?
Zuletzt geändert von DaCoda am 05.12.2023 11:00:03, insgesamt 1-mal geändert.

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: chmod u+s hat keinen Effekt

Beitrag von heisenberg » 05.12.2023 10:41:58

man 2 getuid sagt:

Code: Alles auswählen

DESCRIPTION
       getuid() returns the real user ID of the calling process.

       geteuid() returns the effective user ID of the calling process.
Also: Mal geteuid probieren?

Getestet. Funktioniert genauso wenig... wie es soll!

Code: Alles auswählen

#include <stdio.h>
#include <unistd.h>

void main()
{
    printf(" uid: %i\n", getuid());
    printf("euid: %i\n", geteuid());
}

Code: Alles auswählen

$ ls -l
-rwsr-xr-x 1 root heisenberg 16056  5. Dez 10:53 testc

$ ./testc 
 uid: 1000
euid: 0
Jede Rohheit hat ihren Ursprung in einer Schwäche.

DaCoda
Beiträge: 172
Registriert: 09.07.2019 21:58:10

Re: chmod u+s hat keinen Effekt

Beitrag von DaCoda » 05.12.2023 10:59:42

@heisenberg Ok das wechselt die effective UID. Danke, wieder was gelernt.

Antworten