Hallo,
Hmmm, bei mir ist zwar auch bei der Mandriva - Installation /tmp für alle schreibbar, aber keine Ahnung, ob das mal wieder bei einer anderen Distri abweicht.
Der Linux-Filesystem-Hierarchy-Standard schweigt sich zu den Zugriffsrechten zu /tmp aus, wenn ich das richtig interpretiere.
http://www.linux.com/guides/Linux-Files ... /tmp.shtml
Allerdings ist der Fall, dass ein Programm global läuft und dann auch nur einmal laufen darf, aber keine root-Rechte hat, in meinen Augen auch eher ungewöhnlich.. das sind in der Regel Dienste und die haben root-Rechte, da wäre die Lösung mit /var/lock dann wieder okay..
Zumindest aber sollten wir das Skript so abändern, dass bei "normalen" Anwendungen, die nur mit Userrechten laufen, der Lockfile im Home-Verzeichnis des Users sitzt. das wäre zumindest sinnvoll.
Ich meine mich auch erinnern zu können, dass die first_start.py Geschichte unter MacOSX nicht sauber lief.... habe ich aber nur mal aus dem Augenwinkel kurz gesehen, dazu müsste ich die Leute mit Zugriff auf MacOSX nochmal greifen und denen meine Skripte, die first_start.py benutzen, zukommen lassen.
Die Änderung mit dem Home-Directory wäre ja noch recht einfach
(Hier mal die Änderungen, wie ich sie habe.. ab Zeile 87 vom Original
her).
Code: Alles auswählen
if appdatadir:
lockdir = os.path.join(appdatadir, "Lockfiles")
else:
env_home = os.environ.get("HOME")
appdir = os.path.join(env_home, appname)
lockdir = os.path.join(appdir, "Lockfiles")
if not (os.path.exists(lockdir) and os.path.isdir(lockdir)):
os.makedirs(lockdir)
Man könnte sich jetzt überlegen, ob man nicht standardmäßig bei
"appname" noch den Punkt vorne hinzufügt, so hätte man dann gleich das
Verzeichnis bei den POSIX - Systemen versteckt... oder man
lässt es so und der Benutzer von first_start.py muss halt selbst
bei der Übergabe von appname daran denken...
EDIT:
-------
Ah, mist, sehe gerade, dass sich jetzt Windows und POSIX Systeme
bei meiner Variante unterschiedlich verhalten würden, natürlich
müssten dann die Windows-Systeme auch ihre Lockfiles erstmal
primär in das Home-Verzeichnis schieben... bis wir die Lösung
für unsere "Bei Bedarf sperre global" Problem haben.
Pass ich nochmal an.
Gibt es einen Ort, an dem jeder Benutzer eines Systems eine Datei (exakt benannte) erstellen, bearbeiten und löschen darf?
Unter Linux (oder umfassender, POSIX - Systemen) steht jetzt die Lösung noch aus... aber was spricht dagegen, unter Windows XP und Co.
%APPDATA% zu nehmen, also in der Regel
C:\Dokumente und Einstellungen\All Users\Anwendungsdaten
?
Wird doch eh schon in der bisherigen Version von first_start.py
verwendet... Das würde doch der Variante für das globale Sperren entsprechen? Was war daran falsch?