Возможности файла Linux теряются при изменении файла. Это ожидаемое поведение?

Когда я изменяю файл, возможности файла, которые я установил ранее, теряются. Это ожидаемое поведение?

Я сначала установил возможность файла:

$ setcap CAP_NET_RAW+ep ./test.txt $ getcap ./test.txt ./test.txt = cap_net_raw+ep 

Как и ожидалось, я обнаружил, что установлен файл.

Затем я изменяю файл.

 $ echo hello >> ./test.txt 

Теперь, когда я проверяю возможности файла, никаких возможностей не обнаружено.

 $ getcap ./test.txt 

One Solution collect form web for “Возможности файла Linux теряются при изменении файла. Это ожидаемое поведение?”

Да, это ожидаемое поведение. У меня нет документа, который говорит об этом, но вы можете увидеть в этом патче с 2007 года

Когда файл с возможностями posix перезаписан, возможности файла, такие как бит setuid, должны быть удалены.

Этот патч представляет security_inode_killpriv (). В настоящее время это определено только для возможностей и вызывается, когда индекс inode изменен, чтобы сообщить модулю безопасности, что он может захотеть удалить любую привилегию, прикрепленную к этому inode. Модуль возможностей проверяет, определены ли какие-либо возможности файла для inode, и, если это так, очищает их.

security_inode_killpriv() все еще находится в ядре сегодня, вызывается из notify_change (), когда inode изменяется в «response to write or truncate»: см. dentry_needs_remove_privs ()

  /* Return mask of changes for notify_change() that need to be done as a * response to write or truncate... */ int dentry_needs_remove_privs(struct dentry *dentry) 
  • Не понимаю, почему getfattr -d ничего не показывает
  • Невозможно установить атрибут файла
  • Каков эффект «chattr + a» в каталоге
  • Подходы, чтобы запретить пользователю удалять домашнюю папку
  • Что делает команда chattr + c / some / dir /?
  • `chattr + i` ошибка в NFS
  • Расширенный атрибут по символической ссылке
  • Почему «attr -l.» Рассказывает мне об атрибуте «selinux», который «attr-g selinux» отказывается читать?
  • неизменяемый флаг для perms
  • Могу ли я установить общий ресурс и включить опцию mount_ user_xattr?
  • найти файлы с расширенными атрибутами
  • Interesting Posts

    Что я должен делать с Python 2.7.9, не ищущим сертификатов SSL в нужном месте на FreeBSD?

    Вставить текст в определенные строки файла?

    Почему прикосновение может меняться только все время, или ничего, если не владелец

    Резервное копирование и восстановление учетной записи электронной почты IMAP с помощью (с открытым исходным кодом) инструментов Linux

    Как отключить AutoMount внешних дисков

    -e с различными эмуляторами терминалов

    поиск ipv6-адреса для MAC-адреса у соседей

    управление терминалом linux на новый терминал

    Создание XMODIFIERS = @ im = none стандарт emacs24

    Не удается запустить Wi-Fi с помощью systemd

    Как запустить скрипт с чистой средой?

    Как обнаружить, что выполняется менее чем x процессов

    Как правильно удалить код выхода / обработать ошибки при использовании замещения процесса?

    Различное поведение eval "command \" $ @ \ "", "$ @" и "$ (echo $ @)" при использовании в качестве аргументов

    Как заставить networkmanager настраивать доменные серверы имен с помощью openresolv + dnsmasq

    Linux и Unix - лучшая ОС в мире.