
Ich versuche herauszufinden, warum ein bestimmtes Verhalten auftritt, wenn sich die Berechtigungen für eine Datei ändern, die aus einem Windows-Editor auf einer über SAMBA gemounteten Unix-Partition gespeichert wird.
Situation:
Wir haben eine Datei unter Unix mit 777 Berechtigungen:
-rwxrwxrwx 1 testuser users 4859 Jan 23 15:09 fbparser.pl*
Das Verzeichnis, in dem sich die Datei befindet, wird von einem Windows 7-PC über Samba gemountet.
Wir öffnen die Datei zum Bearbeiten entweder im Editor „Notepad++“ oder „Sublime“.
Wenn die Datei geändert und gespeichert wird, ändern sich die Berechtigungen auf der Unix-Seite wie folgt:
-rw-rwxrwx 1 testuser users 4859 Jan 23 15:09 fbparser.pl*
Nun vermutete ich, dass es NICHT an Samba Mount liegen könnte, da das gleiche ProblemNICHTtritt beim Öffnen und Speichern der Datei im normalen Windows-Editor auf!
Daher war mein erster Gedanke, dass dies daran lag, dass die oben genannten Programmiereditoren so eingestellt sein könnten, dass sie - anstatt die Datei einfach zu speichern - die Originaldatei umbenennen $orig_filename.bak
und den neuen Inhalt dann als NEUE Datei mit dem ursprünglichen Dateinamen speichern. Dies basiert auf meiner eigenen früheren Erfahrung mit demselben Problem beim Verwenden des UltraEdit-Editors.
Wenn dies jedoch der Grund für die Dauerwellenänderungen ist, kann ich mir zwei ANDERE Symptome, die ich beobachtet habe, nicht erklären:
Zunächst einmal wird überhaupt keine Sicherungsdatei erstellt.
Zweitens: Beim Erstellen NEUER Dateien (mit
touch
) im selben Verzeichnis in der Unix-Shell gelten die Berechtigungen für die neue Datei-rw-rwxrwx
überhaupt NICHT.Drittens, falls es wichtig ist: Die Inode-Nummer für die Datei bleibt nach der Bearbeitung dieselbe.
Was könnte sonst noch das Problem sein und welche Schritte kann ich unternehmen, um es zu untersuchen?
Mein eigenes UltraEdit-Problem löste sich, als ich UE anwies, die Datei NICHT durch Umbenennen zu sichern; Notepad++ bietet jedoch keine solche Option.
Antwort1
map archive = no
Ich habe diese Frage gefunden, als ich versuchte, ein sehr ähnliches Problem zu lösen. Die Lösung in meinem Fall bestand darin , den globalen Abschnitt von smb.conf zu ergänzen .
Das zugrunde liegende Problem ist die Art und Weise, wie Samba Berechtigungen von DOS auf Linux überträgt.
Es scheint, dass Notepad++ beim Speichern einer Datei das Attribut „Archiv“ der DOS-Datei setzt/zurücksetzt. Standardmäßig verwendet Samba dies, um das Ausführungsattribut für Benutzerberechtigungen für eine Datei zu verwalten.
Wenn Sie also den Samba-Parameter festlegen:
map archive = no
Das Attribut wird nicht zugeordnet und die Ausführungsberechtigungen des Benutzers bleiben in der zuvor festgelegten Weise erhalten.
Antwort2
Ich hatte die gleiche Situation. Mir hat geholfen, den Parameter „Create Mask“ in der Datei smb.conf zu ändern.
create mask = 0600 -> create mask = 0700