CIFS-Freigabe: Dateien werden mit VIM gesperrt, jedoch nicht mit Nano

563
NdFeB

Ich habe eine heterogene Freigabe zwischen Linux- und Windows-Systemen, die auf einer NetApp gehostet werden. Unter Linux mounte ich die Freigabe mit diesen Optionen:

mount.cifs -o username=`logname`,dom=DOMAIN,cifsacl,multiuser,user_xattr,sec=krb5,iocharset=utf8,noserverino,mapchars //host/share /home/`logname`/mnt 

Alle Berechtigungen (von Windows festgelegt) werden korrekt berücksichtigt. Es gibt jedoch ein seltsames Verhalten:

Wenn ein Benutzer eine unter Windows erstellte Datei (oder eine Kopie davon) mit vimoder öffnet vi, wird die Datei im readonlyModus geöffnet . Wenn er sie ändert und mit schreibt :w!, wird die Datei gesperrt und kann auch von einem Administrator oder root ( permission denied) nicht mehr gelesen werden . Es kann nur von einem von diesen gelöscht werden. Gedit öffnet solche Dateien auf dieselbe Weise: schreibgeschützt.

Wenn jedoch eine solche Datei mit geöffnet wird nano, ist sie genau festgelegt [converted from DOS format]und beim Speichern wird sie markiert [dos format]. Die Datei wird geschrieben und es tritt überhaupt kein Problem auf.

Hast du eine Ahnung, warum es sich so verhält?

BEARBEITEN: Ich habe bereits versucht, Sicherungen zu deaktivieren und Dateien /etc/vimrcmit diesen Optionen auszutauschen:

set nobackup set nowritebackup set noswapfile 

Auch versucht :w! ++ff=dosund :w! ++ff=unixohne Erfolg.

0
Ich vermute, dass dies ein Nebeneffekt davon ist, wie Vim eine Datei überschreibt. Es verschiebt tatsächlich eine Datei zur Seite und schreibt eine neue, während versucht wird, die Betriebssystemberechtigungen der Datei zu erhalten. Deaktivieren Sie die Option 'writebackup' und prüfen Sie, ob das Problem behoben ist. Heptite vor 7 Jahren 0
Ich habe das schon gemacht, ich habe den ersten Beitrag genau bearbeitet. Am Ende meines "/ etc / vimrc" habe ich folgende Optionen: set nobackup, set nowritebackup, set noswapfile. Gleiches Verhalten ... NdFeB vor 7 Jahren 0
Haben Sie die tatsächlichen Dateiberechtigungen vorher und nachher überprüft? Seth vor 7 Jahren 0
Bei der Freigabe handelt es sich um NTFS-Berechtigungen von einer NetApp, und der Zugriff wird mit einem TGS gewährt. Alle von Windows erstellten Dateien scheinen root: root 000 zu sein. In Windows gesetzte Berechtigungen werden jedoch immer noch berücksichtigt, es ist nur nicht sichtbar. Ja, ich bin mir sicher über Berechtigungen, aber es wird nicht in Linux angezeigt, sondern nur geehrt. Ich meine, mit Nano gibt es kein Problem, nur mit vi und vim. BEARBEITEN: Ich werde vorher und nachher von Windows aus nachsehen und dann wieder posten NdFeB vor 7 Jahren 0
Ok, Berechtigungen werden tatsächlich überschrieben. Erläuterung: FileA kann von "Domain Admins" und "GroupA" beschrieben werden. FileA wird kopiert und FileB genannt. FileB hat die gleichen ACLs. Ich KANN NICHT (ich habe gerade entdeckt, dass das FileB mit Nano überschreibt) und ich kann es mit vi / vim mit: w! Überschreiben. In diesem Fall wird die ACL in den Benutzer geändert, der sie bearbeitet hat, und gruppiert "Alle Benutzer" und "Domänenbenutzer". Sie alle haben nur die angekreuzten Attribute: "Attribute lesen", "Lesen von Attributen lesen" und "Leseberechtigung". Die letzten 3 halten sich weder unter Windows noch unter Linux an der Ehre: Die Datei ist unantastbar, es sei denn, sie wird von einem Administrator entfernt. NdFeB vor 7 Jahren 0
Zusammenfassend: Niemand kann eine Datei aus Linux kopieren, oder die ACL wird zerstört und die Datei geht verloren. NdFeB vor 7 Jahren 0

0 Antworten auf die Frage