2

У меня есть домашний вопрос о программировании ядра в Linux. Вопрос в том:

Какая специфическая для Linux привилегия требуется для сохранения прав собственности на файл при его копировании и как его получить?

Экспериментируя, я обнаружил, что мне нужно быть пользователем root или суперпользователем, чтобы это работало. Есть ли более конкретный способ объяснить этот эффект?

1 ответ1

3

См. Справочную страницу capabilities(7) - вам нужна возможность CAP_CHOWN , чтобы изменить владельца файла с помощью chown() . (В Root все возможности включены автоматически. Страница руководства объясняет, как получить возможности в других случаях.)

Не существует отдельного метода / возможности просто сохранить собственность, поскольку копии файлов Linux создаются путем простого чтения / записи данных в файл назначения, а затем делают то же самое с метаданными. (Для сравнения, Windows NT имеет привилегии SeBackupPrivilege и SeRestorePrivilege и BackupRead() / BackupWrite() .)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .