Есть ли способ сделать файл неизменяемым из программы на C, которая должна запускаться с уровнем привилегий пользователя в Linux? Я пробовал chattr, но для этого системного вызова требуется разрешение суперпользователя.
Чтобы установить неизменный флаг, вы можете:
CAP_LINUX_IMMUTABLE
В любом случае, вы не можете сделать это с простыми полномочиями на уровне пользователя.
Вы можете использовать функцию с именем ioctl. Вы можете обратиться к следующему обсуждению самого StackExchange. Это решение очень похожей проблемы.
ioctl
Установка неизменного флага с помощью ioctl () в C
Надеюсь, я смогу помочь.