bind port < 1024

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Duben 8 20:10:36 CEST 2001


On Fri, 6 Apr 2001, iko wrote:

> potrebujem povolit urcitemu procesu/programu sa napichnut na port
> http, smtp a tak dalej, ale nechcem ho pustat ako roota.

To neni tak uplne trivialni.

K podobnemu ucelu je urcena jedna "capability" (uvozovky jsou na miste),
jenze ty jsou zatim skoro nepouzitelne -- aspon pokud mluvime o 
nemodifikovanych jadrech rady 2.2 --, protoze nelze rozumne pridelit
zadna privilegia programum, co nebezi po rootem. (Pokud nekdo vi jak,
rad se poucim.)

Dalsi moznost je z toho programu spustit maly pomocny program, co ma
setuid na roota, ktery pouze provede volani bind() na ten socket a skonci,
a tento pomocny program spustit misto toho, aby hlavni program volal 
bind() sam.

Take sveho casu existoval patch, tusim od Malcoma Beattieho, ktery
vytvoril specialni filesystem (sockfs). V nem jsou virtualni soubory
predstavujici jednotlive porty  < 1024 a zmenou jejich pristupovych prav
lze zpristupnit tyto porty i neprivilegovanym uzivatelum.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux