Unklarheiten mit SUID...

27/11/2009 - 14:52 von Karsten Meyer | Report spam
Moin,
ich spiele als Apple-Konsolen-Neuling gerade eine wenig mit dem SUID-Bit herum.
Ich habe mir nun z.B. mal die Bash auf suid gesetzt (also das, wovon immer alle
abraten - aber eben nur zum Testen und Lernen, auf meinem eigenen System!)

-r-sr-xr-x 1 root wheel 1.2M Sep 10 2008 bin/bash

Blöde Frage: Ich hàtte jetzt erwarte, root zu sein. Aber irgendwie habe ich nicht
mehr Rechte, als in einer nicht-suid-Bash.
Selbst wenn ich in der bash dann Befehle aufrufe, wie etwa sudo, kommt ganz regulàr
die Passwortabfrage. Offenbar kann man auch auf einer SUID-bash nicht ohne weiteres
zum root werden, oder?
Auch habe ich dann mal den vi-Editor auf SUID gesetzt, in der Annahme, mit diesem
dann die /etc/sudoers editieren zu können. Allerdings klappt auch dies nicht.
Der sudo-Befehl selber muss ja offenbar ohnehin auf SUID gesetzt sein, sonst gibts
ne dicke Fehlermeldung.
Wer mag mir ein wenig Nachhilfe erteilen?
Vielen Dank im Voraus,

Karsten

(dem ohnehin nicht ganz klar ist, wozu das suid-Bit überhaupt existiert)
 

Lesen sie die antworten

#1 Peter Brenner
27/11/2009 - 15:53 | Warnen spam
Karsten Meyer schrieb:

ich spiele als Apple-Konsolen-Neuling gerade eine wenig mit dem SUID-Bit herum.
Ich habe mir nun z.B. mal die Bash auf suid gesetzt (also das, wovon immer alle
abraten - aber eben nur zum Testen und Lernen, auf meinem eigenen System!)

-r-sr-xr-x 1 root wheel 1.2M Sep 10 2008 bin/bash

Blöde Frage: Ich hàtte jetzt erwarte, root zu sein. Aber irgendwie habe ich nicht
mehr Rechte, als in einer nicht-suid-Bash.



Richtig, die Bash schmeißt die root Rechte gleich nach dem
Start wieder weg.

Selbst wenn ich in der bash dann Befehle aufrufe, wie etwa sudo, kommt ganz regulàr
die Passwortabfrage. Offenbar kann man auch auf einer SUID-bash nicht ohne weiteres
zum root werden, oder?



Nicht so ohne weiteres, aber es geht. Stichwort bash -p.

Auch habe ich dann mal den vi-Editor auf SUID gesetzt, in der Annahme, mit diesem
dann die /etc/sudoers editieren zu können. Allerdings klappt auch dies nicht.
Der sudo-Befehl selber muss ja offenbar ohnehin auf SUID gesetzt sein, sonst gibts
ne dicke Fehlermeldung.
Wer mag mir ein wenig Nachhilfe erteilen?



Vielleicht die man page der bash?

If the shell is started with the effective user (group) id not equal to
the real user (group) id, and the -p option is not supplied, no startup
files are read, shell functions are not inherited from the environment,
the SHELLOPTS variable, if it appears in the environment, is ignored,
and the effective user id is set to the real user id. If the -p option
is supplied at invocation, the startup behavior is the same, but the
effective user id is not reset.

In kurz auf deutsch: Es gibt zusàtzlich zur user id noch eine effektive
user id (EUID). Das SUID Bit àndert nur die EUID. Ob die aber von einem
Programm berücksichtigt wird oder nicht entscheidet letztendlich der
Autor.

HTH
Peter

Ähnliche fragen