CIFS paylaşımı: dosyalar VIM ile kilitleniyor ancak Nano ile değil


0

NetApp'ta barındırılan Linux ve Windows sistemleri arasında heterojen bir paylaşımım var. Linux'ta, paylaşımını şu seçeneklerle yapıyorum:

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

Tüm izinler (Windows'tan ayarlanmıştır) doğru olarak kabul edilir. Ancak, garip bir davranış var:

Bir kullanıcı Windows'ta oluşturduğu bir dosyayı (veya bir kopyasını) vimveya ile açarsa, dosya modunda viaçılır readonly. Diye değiştirir ve bunu yazıyorsa :w!, dosya kilitli alır hatta bir yönetici veya root tarafından, ve artık okunamaz ( permission denied). Sadece bunlardan biri tarafından silinebilir . Gedit bu dosyaları aynı şekilde açar: salt okunur.

Bununla birlikte, böyle bir dosya açıldığında nanokesinleşir [converted from DOS format]ve kaydedildiğinde işaretlenir [dos format]. Dosya yazılır ve hiçbir sorun yaşanmaz.

Neden böyle davrandığı hakkında bir fikrin var mı?

EDIT: Ben zaten /etc/vimrcbu seçenekleri ile yedekleri devre dışı bırakmak ve dosyaları takas etmeye çalıştım :

set nobackup
set nowritebackup
set noswapfile

Ayrıca denedim :w! ++ff=dosve :w! ++ff=unixbaşarılı olamadık.


Bunun, Vim'in bir dosyanın "üzerine yazma" işleminin nasıl yapıldığının bir yan etkisi olduğundan şüpheleniyorum. Bir dosyayı bir kenara bırakır ve dosyanın işletim sistemi izinlerini korumaya çalışırken yeni bir tane yazar. 'Yazma' seçeneğini kapatmayı deneyin ve sorunun çözülüp çözülmediğine bakın.
Heptit

Bunu zaten yaptım, kesin olarak belirlemek için ilk yazıyı düzenledim. "/ Etc / vimrc" nin sonunda şu seçeneklere sahibim: nobackup'ı ayarla, nowritebackup'ı ayarla, noswapfile'i ayarla. Aynı davranış ...
NdFeB

Gerçek dosya izinlerini önce ve sonra kontrol ettiniz mi?
Seth

Paylaşım, NetApp'ın NTFS stili izinleri ve TGS ile erişim izni olan erişim, tüm Windows tarafından üretilen dosyalar root gibi görünüyor: root 000. Ancak, Windows'ta ayarlanan izinler hala onurlandırılmıştır, sadece görünmez. Yani evet, izinler konusunda eminim, ancak Linux'ta gösterilmez, sadece onurlandırılır. Yani, nano ile bir sorun yok, sadece vi ve vim ile. EDIT: Windows öncesi ve sonrası kontrol edeceğim, sonra tekrar gönderirim
NdFeB

Tamam, gerçekten, izinlerin üzerine yazılır. Açıklama: FileA, "Domain Admins" ve "GroupA" tarafından yazılabilir. FileA kopyalanır ve FileB olarak adlandırılır. FileB aynı ACL'lere sahiptir. (Bunu daha yeni keşfettim), nano'lu FileB'nin üzerine yazarım ve bununla birlikte vi / vim ile: w! Bunu yaparsa, ACL'yi düzenleyen kullanıcıya değiştirir, + "Tüm kullanıcılar" ve "Etki Alanı Kullanıcıları" nı gruplandırır. Hepsinin sadece işaretlenmiş nitelikleri vardır: "okuma özellikleri", "okuma özelliklerini okuma" ve "okuma yetkisi". Bu son 3 kişi, Windows veya Linux ile onurlandırmaz: bir yönetici tarafından silinmesi dışında, dosyaya dokunulmazdır.
NdFeB
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.