Ich habe folgendes Problem. Auf einem Unix-Server (CentOS 5.5) haben mehrere Benutzer, die derselben Gruppe angehören, Zugriff auf dieselben Dateien (über ssh). Nachdem ein bestimmter Benutzer (sagen wir Benutzer A) die Datei bearbeitet hat, wird der Dateibesitzer auf A geändert, die Gruppe (G) und die Berechtigungen (0664) bleiben erhalten. Sobald ein zweiter Benutzer (B) versucht, dieselbe Datei zu ändern, darf er dies nicht tun. Wenn andererseits Benutzer B die Datei ändert, kann A sie ohne Probleme ändern (außer die Berechtigungen zu vermasseln).
Ich verstehe, dass etwas mit den Berechtigungen/Gruppen vermasselt ist, aber ich kann nicht herausfinden, was. Daher wäre jede Hilfe willkommen.
Bereitstellung weiterer Informationen:
$ ls -l /path/file
-rwxrwxr-x 1 B G 42269 jan 14 10:30 file
$ getfacl /path/file
# file: file
# owner: B
# group: G
user::rwx
group::rwx
other::r-x
$ ls -ld /path
drwxrwxr-x 12 B G 4096 jan 14 10:24 .
$ getfacl /path
# file: .
# owner: B
# group: G
user::rwx
group::rwx
other::r-x
Akzeptierte Antwort:
A hat die Berechtigung, in das Verzeichnis zu schreiben, also schreibt der Bearbeiter von A eine neue Datei /path/file.tmp
(oder ein ähnlicher Name) verschiebt dann die neue Datei nach /path/file
. Da A die Datei gerade erstellt hat, gehört sie A.
B hat keine Berechtigung, in das Verzeichnis zu schreiben, daher überschreibt der Editor von B die vorhandene Datei, wodurch der Eigentümer nicht geändert wird.
(Siehe Wie bearbeite ich eine Datei und behalte ihre Zugriffskontrollliste / SELinux-Sicherheitskontext bei? für einige Hintergrundinformationen darüber, warum Editoren diese Dinge tun.)
Es scheint, dass A in Gruppe G ist, aber B nicht. Der einfachste Weg, dies zu lösen, wäre sicherzustellen, dass A und B entweder beide in Gruppe G oder beide nicht in Gruppe G sind.