Re: file locking auf ufs

From: Marc Santhoff <M.Santhoff(at)t-online.de>
Date: 30 Aug 2003 00:26:40 +0200

Am Fr, 2003-08-29 um 17.24 schrieb Christian Lackas:
> * Marc Santhoff <M.Santhoff(at)t-online.de> [030829 17:09]:
>
> Hallo Marc,

N'Abend Christian,

> > Ich wüßte gern, wie FreeBSD das Sperren von geöffneten Dateien handhabt.
>
> file locking ist advisory (also freiwillig). Dafür gibt es fcntl(2),
> flock(2), bzw. lockf(3). Das ganze beruht aber darauf, dass beide Seiten
> diese Funktionen benutzen.
>
[...]
> Hier ist das locking mandatory (wird also vom System selbst
> durchgesetzt).

Das heißt also, wenn man es nicht weiß und Daten einer anderen Anwendung
/ eines daemon ändern will, sollte dringend vorher mit fstat nachgesehen
werden.

[...]
> SMB benutzt sogenanntest opportunistic locking (OpLock). Siehe hierzu
> auch: http://www.oreilly.com/catalog/samba/chapter/book/ch05_05.html
> Dabei werden die Daten gesperrt und gleichzeitig angemeldet, dass sie
> lokal gecached werden.
>
> Solange du nur über SMB auf die Daten änderst ist das kein Problem. Das
> sorgt dann für die Einhaltung des Locks (auch wenn du von einem anderen
> Rechner über SMB auf die Datei zugreifst).

Aha ... da muß man in heterogenen Umgebungen ja höllisch aufpassen.

> Du hast jetzt aber vermutlich an SMB vorbei (lokal auf dem
> FreeBSD-Server) geändert. Davon bekommst Samba dann nichts mit und es
> hindert dich auch niemand daran. Schlimmer noch: Der Windows-Rechner
> denkt, dass er die Datei exklusiv auf hat und fragt auch gar nicht mehr
> beim Server nach, ob sich da was geändert hat, sondern benutzt nur die
> lokal gecachete Version.

Nein, tatsächlich habe ich es via NFS von einem dritten Rechner gemacht,
aber an Samba vorbei stimmt natürlich. Nach meinen bisherigen
Negativerfahrungen sind Windows 95/98-Systeme da am schmlimmsten (auf d.
Server nochmal neu in PDF gedruckt, vom Win-Rechner gelesen: nichts ist
geändert, kommt alles a.d. cache). Da wird mir wirklich übel, innen
übertriebener Sicherheitsfimmel und nach außen zu beliebigen Netzen
alles weit offen ...

> Dein Frösteln ist also berechtigt. IdR wird Samba dir die Datei im ganzen
> oder in Teilen überschreiben, wenn der Windows-Client denkt es sei mal
> wieder Zeit. Das kann zu einem kompletten Verlust der Daten in der Datei
> führen...

Nun ja, wenn man es weiß bzw. der Admin verhindert, daß sowas passiert
geht's. Aber naiv drauflos kann fatal enden.

Danke sehr für die Erhellung,
Marc

To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 30 Aug 2003 - 00:53:24 CEST

search this site