SUID

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Kontaktdaten:

SUID

Beitrag von chabayo » 09.06.2018 15:06:13

Eigentlich dachte ich das, wenn ich ein Programm UID=0 mit "chmod u+s" bestrahle, es bei Ausfuehrung zum Hulk mutieren muesste, Beispiel:

Code: Alles auswählen

sudo groupadd powermanager
sudo adduser dummy --ingroup powermanager
echo "echo disk > /sys/power/state" > disk
sudo chown root:powermanager disk
sudo chmod u+rwxs,g+rx-ws,o-rwxs,-t disk
su dummy -c disk
disk: Permission denied
Warum tut es das nicht?
Watt about the non-digital!?

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: SUID

Beitrag von Meillo » 09.06.2018 19:47:56

Bei Scripten wird das Setuid-Bit ignoriert. Das ist eine Sicherheitshuerde, weil Scripte erfahrungsgemaess oft Luecken haben. Wenn du das Setuid-Bit nutzen willst, musst du ein kompiliertes Programm verwenden.
Use ed once in a while!

tobo
Beiträge: 1964
Registriert: 10.12.2008 10:51:41

Re: SUID

Beitrag von tobo » 09.06.2018 20:52:33

Kann man vielleicht hier erkennen, dass u.a. die effektive UserID nicht durchgereicht wird, wenn's interpretiert wird:

Code: Alles auswählen

$ export user=$USER 
$ su
Password:
# printf "ps --headers -o euid,ruid,suid,fuid,ouid,cmd -C ps" > ps && chmod +x ps 
# su $user -c ./ps
 EUID  RUID  SUID  FUID OWNER CMD
 1000  1000  1000  1000 -     ps --headers -o euid,ruid,suid,fuid,ouid,cmd -C ps
#
# chmod u+s ps
# su $user -c ./ps
 EUID  RUID  SUID  FUID OWNER CMD
 1000  1000  1000  1000 -     ps --headers -o euid,ruid,suid,fuid,ouid,cmd -C ps
#
# rm ps
# cp -a `which ps` .
# su $user -c "./ps --headers -o euid,ruid,suid,fuid,ouid,cmd -C ps"
 EUID  RUID  SUID  FUID OWNER CMD
 1000  1000  1000  1000 -     ./ps --headers -o euid,ruid,suid,fuid,ouid,cmd -C ps
#
# chmod u+s ps
# su $user -c "./ps --headers -o euid,ruid,suid,fuid,ouid,cmd -C ps"
 EUID  RUID  SUID  FUID OWNER CMD
    0  1000     0     0 -     ./ps --headers -o euid,ruid,suid,fuid,ouid,cmd -C ps
#
# rm ps
EDIT: C&P-Fehler behoben.
Zuletzt geändert von tobo am 10.06.2018 12:37:31, insgesamt 1-mal geändert.

Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Kontaktdaten:

Re: SUID

Beitrag von chabayo » 10.06.2018 12:15:59

Oh,...

dachte ich haette das schon mal gecheckt, weil das ist ja tatsaechlich bloss ein 2-Zeiler in C, aber das es dann funktioniert hat mich tatsaechlich ueberrascht.

Danke euch.
Watt about the non-digital!?

Antworten