Meine Frage ähnelt dieser anderen , außer dass man nach neu erstellten Dateien fragt.
In meiner Unix-Box befinden sich die Benutzer Alice , Bob und Tomcat in der Gruppe Tomcat .
Die Konfigurationsdateien des Tomcat-Servers gehören dem Benutzer tomcat und der Gruppe tomcat.
Ich habe die Berechtigungen dieser Datei in lesbar und für Gruppen beschreibbar geändert, damit Alice und Bob die Dateien bearbeiten können.
Ich habe jedoch festgestellt, dass die Datei nach dem Bearbeiten dem letzten Benutzer gehört, der sie bearbeitet hat.
F: Ist es möglich, Berechtigungen zu ändern, damit Alice und Bob die Dateien bearbeiten können, ohne ihren Besitz zu ändern?
Wie ändert das Bearbeiten einer Datei überhaupt ihren Besitz?
files
permissions
ownership
Leonel
quelle
quelle
Antworten:
Der resultierende Benutzer der Datei hängt davon ab, was der Editor tut. Einige Editoren speichern die Datei, indem sie sie abschneiden und über die Datei schreiben (ohne den Inode zu ändern). Einige Editoren benennen die Datei in einen anderen Namen um (
file
bisfile~
ist üblich) und erstellen eine neue Datei mit dem Namen des Originals. Durch Ändern der Originaldatei bleibt der Eigentümer unverändert. Wenn Sie eine neue Datei erstellen, wird die neue Datei der UID des Erstellungsprozesses gehört.Von den Editoren habe ich auf Debian,
nano
undjoe
auchnvi
undvim
(die minimale Version invim-tiny
) scheinen an Ort und Stelle zu überschreiben. Obwohl ich nehme anvim
und Emacs sind wahrscheinlich konfigurierbar in dem, was sie tun.Stephen kommentiert atomare Updates . Das Problem beim erneuten Erstellen vor Ort besteht darin, dass die Datei auf die Länge Null gekürzt und dann geschrieben wird. Ein anderer Prozess könnte es öffnen und lesen, bevor alle Daten geschrieben sind.
Ein Atom Update würde durch die Schaffung der neuen Version wie etwa getan werden
file.new
, dann die Umbenennungfile.new
zufile
. Hinterlassen einer Backup - Datei, könnte man schaffenfile.new
, Linkfile
auffile~
und benennenfile.new
zufile
. Die Umbenennung ist insofern atomar, als jeder Prozess, der über den Namen auf die Datei zugreift, entweder die alte oder die neue Version erhält, nichts dazwischen. Alle geöffneten Dateihandles verweisen natürlich auf die Datei, die geöffnet gehalten wurde, und bieten eine konsistente Ansicht der Datei.Aus den Dateiberechtigungen Blickwinkel, über die gleiche Datei zu speichern (Inode) Schreibzugriff auf die Datei selbst (aber nicht das Verzeichnis) erfordert, es umbenennen und eine neuen erstellt erfordert Schreibzugriff auf das Verzeichnis (aber nicht auf die Originaldatei ).
(Das Umbenennen und Neuerstellen ist im Übrigen auch eine Möglichkeit, Dateiberechtigungen zu korrigieren, falls jemand eine Datei in einem freigegebenen Verzeichnis erstellt oder ändert, aber vergisst, Gruppenschreibzugriff darauf zu gewähren.)
quelle
Wie von ilkkachu erläutert , gibt es keine Möglichkeit, den Eigentümer der Datei zu steuern , wenn der verwendete Editor beim Speichern eine neue Datei erstellt . Was Sie wahrscheinlich wirklich interessiert, ist sicherzustellen, dass die Dateien für Tomcat lesbar bleiben. Sie können dies tun, indem Sie sicherstellen, dass ihre Gruppe ist (und sie von ihrer Gruppe gelesen werden können). Dies kann für neue Dateien erzwungen werden, indem Sie das Bit im übergeordneten Verzeichnis setzen :
tomcat
setgid
Wenn Sie also
bob
eine Datei mit einem Editor bearbeiten, der die Datei neu erstellt, ist die bearbeitete Datei Eigentum vonbob:tomcat
Tomcat und Tomcat kann sie weiterhin lesen (umask
zumindest mit einem typischen ). Solange das übergeordnete Verzeichnis von dertomcat
Gruppe beschreibbar ist , kann jeder Benutzer in dieser Gruppe Dateien im Verzeichnis bearbeiten (wenn auch nur durch erneutes Erstellen).Ich würde jedoch empfehlen, Ihre Prozesse zu ändern. Sie sollten Dateien wahrscheinlich nicht direkt an dem Ort bearbeiten, von dem sie von Tomcat gelesen werden. Im Idealfall werden die Dateien in einem VCS gespeichert und durch einen separaten Prozess bereitgestellt (möglicherweise automatisiert). Auf diese Weise vermeiden Sie all diese Eigentumsprobleme ...
quelle