[linux-l] Programme / Dateien / Benutzerr?chte

Thomas Brinker thomas.brinker at gmx.de
Sa Jun 14 12:25:15 CEST 2003


Am Samstag, 14. Juni 2003 11:30 schrieb Ihno Krumreich:
> On Fri, May 23, 2003 at 09:32:33PM +0200, Olaf Radicke wrote:
> > Hi!
> >
> > Wenn ich einen Benutzer X habe und der soll
> > mit dem Programm Y die Datei Z bearbeiten k?nnen,
> > aber nicht direkt auf Datei Z zugreifen k?nnen,
> > weil Programm Y genau ?berpr?ft was X machen will.
> > Wie stelle ich das an?
> >
> > Normalerweise erbt das aufgerufene Programm doch
> > die R?chte von dem aufrufenden Benutzer.
>
> Richtig.
>
> > So kann ich doch z.B. passwd als User aufrufen und
> > indirekt auf eine Datei zugreifen auf die sonnst
> > nicht zugreifen kann und auch nur auf eine ganz
> > bestimme weise.
>
> passwd ist hier eine der Ausnahmen.
>
> Bei passwd ist das setuid-Bit gesetzt. Erkannbar an
> dem s statt dem x bei den Ausfuehrungsrechten.
>
> ihno at uttenreuth:~> ls -l /usr/bin/passwd
> -rwsr-xr-x    1 root     shadow      68680 2002-09-10 21:13 /usr/bin/passwd
> ihno at uttenreuth:~>
>
> Damit bekommt das aufgerufene Programm nicht die
> Rechte des aufrufenden Benutzers, sondern die
> Rechte des Eigentuemers von /usr/bin/passwd
> (in diesem Falle also root).
>
> Der gleiche Mechanismus funktioniert mit jedem
> anderen Benutzer. In deinem Beispiel braucht
> man also einen Benutzer (selbst eingerichtet)
> dem das Programm Y und die Datei Z gehoeren.
> Das Programm Y muss setuid sein (chmod u+s Programm_Y).
> Jetzt muss X das Programm noch ausfuehren duerfen
> (chmod go+x Programm_Y) und dann geht es los.
So weit ich weiss geht das aber nur mit 'binären' Programmen und nicht mit 
SHELL-Skripten, bei Skripten wird das seiuid bit schlicht ignoriert.

Gruß
Thomas




Mehr Informationen über die Mailingliste linux-l