Редактировать файл в vim без изменения владельца

408
isapir

У меня есть набор файлов в каталоге /etc/tomcat/conf, которые принадлежат пользователю tomcatи группе www.

Когда я использую vim для редактирования файла в этом каталоге, владелец этого файла меняется на моего пользователя / группу.

Как я могу обновить файл без изменения владельца?

Я использую CentOS 7.2 с:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jun 10 2014 06:55:55) 

Включенные патчи: 1-160

0
Вместо перезаписи файла Vim создает новый файл, удаляет старый и перемещает новый на свое место. Насколько я знаю, это поведение нельзя изменить, и оно всегда приводит к смене владельца в подобных ситуациях. Heptite 7 лет назад 0
@ Hepite, я не знал об этом. Это также относится и к другим редакторам, таким как `nano`? Или `nano` изменит существующий файл без изменения владельца? isapir 7 лет назад 0
Хорошо, я только что проверил `nano`, и он не страдает от той же проблемы. Это очень обидно, так как я только начинал любить vim isapir 7 лет назад 0
Еще не пробовал, но вы можете получить владельца и группу с помощью `` `stat```. Это может сработать, если вы написали небольшой скрипт, который получит это и сохранит в регистр и вызовет `` `chown``` после` ``: w```. Просто мысль. Ilker Mutlu 7 лет назад 0

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

0
PawkyPenguin

Это не совсем понятно из вашего вопроса, но я предполагаю, что у вас есть права на запись в /etc/tomcat/confкаталог, а также права на запись для всех файлов в /etc/tomcat/confкаталоге. Если это так, vim должен оставить владельца файла без изменений, если в вашем .vimrc нет настроек не по умолчанию.

Попробуйте выполнить, :set backupcopyчтобы увидеть значение backupcopyпеременной. Если он установлен, noчто это плохо, потому что vim переименует файл и напишет новый (см. :help backupcopy).

Если у вас нет прав на запись в /etc/tomcat/confкаталог, vim должен четко предупредить вас, что он не может записать файл, и вы сможете делать это только с помощью :w!. Кроме того, я был бы удивлен, если бы nano все еще работал, если бы это было так, поскольку, насколько я знаю, nano не сможет полностью писать в этом случае.

У меня есть разрешение на запись, так как мой пользователь является членом группы `www`. isapir 7 лет назад 0