Zamceni souboru - flock/fcntl

Stepan Roh sroh7497 na ss1000.ms.mff.cuni.cz
Čtvrtek Říjen 12 10:09:12 CEST 2000



On Thu, 12 Oct 2000, Juraj Hiľovský wrote:

> 
> ----- Original Message -----
> From: Martin Mačok <martin.macok na underground.cz>
> To: <linux na linux.cz>
> Sent: Wednesday, October 11, 2000 9:19 PM
> Subject: Re: Zamceni souboru - flock/fcntl
> 
> 
> > On Wed, Oct 11, 2000 at 04:58:36PM +0200, David Pavlis wrote:
> > > Mam dotaz. Potrebuji v programu v C-ku uzamknout soubor tak aby na nej
> > > nemohly zadne jine aplikace.  Zkousel jsem to jak s flock, tak s fcntl,
> > > ale vzdy je mozne soubor otevrit jinym programem - napr. "vi" a zapsat
> > > do nej.
> >
> > Takto obecne to nepujde, budete si to muset obejit nejakym trikem,
> > napriklad docasnym prejmenovanim souboru, docasnym chmod 0 souboru nebo
> 
> Ked to takto obecne nejde, tak by ma zaujimalo, preco je to tak. Preco treba
> pouzivat nejake triky na nieco, co by mal zvladnut samotny OS ?

V Linuxu existuje tzv. mandatory lock, tj. zamek, ktery hlida jadro -
prace s nim je stejna jako u normalnich zamku, ale jadro vam odmitne praci
se souborem, kdyz ho ma nekdo zamceny. Tato vec pochazi uz ze Systemu V,
akorat ze neni POSIX (zrejme). Souboru nastavite mandatory lock tak, ze mu
nastavite sgid bit a zrusite group execute bit (chmod g+s-x). Blize viz
zdrojaky kernelu, soubor Documentation/mandatory.txt.

S pozdravem,

Stepan Roh



Další informace o konferenci Linux