[linux-l] /etc/group neu einlesen

olafBuddenhagen at gmx.net olafBuddenhagen at gmx.net
Do Jan 3 21:39:54 CET 2008


Hallo,

On Tue, Jan 01, 2008 at 05:44:07PM +0100, Steffen Dettmer wrote:
> * olafBuddenhagen at gmx.net wrote on Mon, Dec 31, 2007 at 20:21 +0100:

> > > In der aktuellen Session kannst Du Deine Rechte nicht erweitern.
> > 
> > Unter Hurd schon... ;-)
> 
> Unter Linux darf setgroups nur root - feature, oder?

Nicht wirklich. Natuerlich darf sich ein normaler Prozess nicht einfach
irgendwelche Rechte holen, die der Nutzer nicht besitzt. In diesem Falle
hat der Nutzer aber schon die zusaetzliche Gruppe; nur die laufenden
Prozesse noch nicht! Es gibt eigentlich keinen Grund, wieso laufende
Prozesse nicht die neue Gruppe bekommen sollten -- ist unter Linux nur
eben aus technischen Gruenden nicht machbar.

Unter klassischen UNIX-Systemen (einschlieszlich Linux) ist es naemlich
meines Wissens nicht moeglich, einem laufenden Prozess zusaetzliche
Berechtigungen zu geben. (Auszer ueber den Umweg durch Ausfuehren von
suid-Programmen -- so wie newgrp, was im Grunde einen neuen Login zu
machen scheint.)

Unter Hurd (und einigen anderen nicht-Mainstream Systemen) kann hingegen
auch ein laufender Prozess neue Berechtigungen erhalten.

Das kann auf verschiedenen Wegen geschehen. Wenn ein Prozess zum
Beispiel das Passwort eines anderen Users bekommt, kann er die ID dieses
Nutzers annehmen -- so kann man zum Beispiel "su" ohne suid
implementieren, oder einen ssh-Server.

Eine andere Moeglichkeit ist, dass ein Prozess, der die zusaetzlichen
Berechtigungen bereits hat, sie an andere Prozesse weitergeben kann. In
dem hier Beschriebenen Fall zum Beispiel koennte man allen laufenden
KDE-Prozessen die neue Gruppe geben.

(Disclaimer: Ich habe nicht ausprobiert, wie gut das in der Praxis
funktioniert; hatte bisher keinen Anlass dazu... Oder vielleicht haette
ich sogar Anlass gehabt, habe aber nicht daran gedacht, dass es die
Moeglichkeit gibt :-) )

-Olaf-



Mehr Informationen über die Mailingliste linux-l