Совместное использование CIFS: файлы блокируются с помощью VIM, но не с помощью Nano

447
NdFeB

У меня есть разнородный общий ресурс между системами Linux и Windows, размещенный на NetApp. В Linux я монтирую общий ресурс с такими параметрами:

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

Все разрешения (установленные из Windows) правильно соблюдаются. Тем не менее, есть странное поведение:

Если пользователь открывает файл, созданный в Windows (или его копию) с помощью vimили vi, файл открывается в readonlyрежиме. Если он изменяет и записывает его :w!, файл блокируется и больше не может быть прочитан, даже администратором или root ( permission denied). Он может быть удален только одним из них. Gedit открывает такие файлы одинаково: только для чтения.

Тем не менее, когда такой файл открывается с помощью nano, он является точным [converted from DOS format], и при сохранении он помечается [dos format]. Файл записывается, и никаких проблем не возникает вообще.

У вас есть идея, почему она так себя ведет?

РЕДАКТИРОВАТЬ: я уже пытался отключить резервные копии и поменять файлы /etc/vimrcс этими параметрами:

set nobackup set nowritebackup set noswapfile 

Тоже попробовал :w! ++ff=dosи :w! ++ff=unixбез успеха.

0
Я подозреваю, что это побочный эффект того, как Vim обрабатывает «перезапись» файла. Фактически он перемещает файл в сторону и записывает новый, пытаясь сохранить права доступа к файлу ОС. Попробуйте отключить опцию writebackup и посмотреть, исчезнет ли проблема. Heptite 7 лет назад 0
Я уже сделал это, я отредактировал начальный пост, чтобы уточнить его. В конце моего "/ etc / vimrc" у меня есть эти параметры: установить nobackup, установить nowritebackup, установить noswapfile. Такое же поведение ... NdFeB 7 лет назад 0
Вы проверяли фактические права доступа к файлам до и после? Seth 7 лет назад 0
Общий ресурс с разрешениями в стиле NTFS от NetApp и доступом, предоставляемым с помощью TGS, все файлы, созданные Windows, выглядят как root: root 000. Но разрешения, установленные в Windows, все еще соблюдаются, их просто не видно. Так что да, я уверен в разрешениях, но они не отображаются в Linux, только приветствуются. Я имею в виду, что нет проблем с nano, только с vi и vim. РЕДАКТИРОВАТЬ: я собираюсь проверить из Windows до и после, а затем я публикую снова NdFeB 7 лет назад 0
Хорошо, действительно, разрешения перезаписываются. Объяснение: Файл A доступен для записи «Администраторам домена» и «Группе A». Файл A копируется и называется FileB. FileB имеет те же ACL. Я не могу (я только что обнаружил) перезаписать FileB с помощью nano, и я могу перезаписать его с помощью vi / vim с помощью: w !. В этом случае ACL меняется на пользователя, который его редактировал, + группирует «Все пользователи» и «Пользователи домена». Все они имеют только отмеченные атрибуты: «атрибуты чтения», «чтение атрибутов чтения» и «разрешение на чтение». Последние 3 не соблюдают ни Windows, ни Linux: файл недоступен, кроме как удалением администратором. NdFeB 7 лет назад 0
Подводя итог: никто не может скопировать файл из Linux, или ACL будет уничтожен, а файл потерян. NdFeB 7 лет назад 0

0 ответов на вопрос