Проблема

При попытке добавить строку в файл конфигурации конейтнера lxc в proxmox в директории /etc/pve/lxc/ с помощью модуля ansible lineinfile у меня ничего не вышло.
При попытке использовать sed я получил вот такую ошибку:

sed: preserving permissions for ‘...’: Operation not permitted

Довольно странно. При попытке выполнить lsattr я получал:

lsattr: Function not implemented While reading flags on ...

Судя по всему, sed не удавалось переименовать отректированную копию файла и заменить ею исходный файл.

Решение

Я так и не понял почему это происходит, однако выполнить задуманное мне удалдось с помощью perl:

perl -i -pe 's/foo/bar/g' ./filename

Также нормально работает awk:

awk -v line='line to add' 'FNR==NR && line==$0{f=1; exit} END{if (!f) print line >> FILENAME}' ____path_to_file____
Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/sed_preserving_permissions_for_operation_not_permitted.txt
  • Last modified: 2019/06/04 20:48
  • by admin