У меня есть специальная программа на C, которая перебирает каталог и записывает файл журнала с содержимым в моем доме. Однако он не может получить доступ к /var /log / / etc / и другим корневым папкам. Как это изменить? В настоящее время он прерван не пользователем root chown myname:myname myprogram. Любая информация, как сделать его похожим на root?

1 ответ1

4

Если вы хотите, чтобы программа запускалась как root, запустите ее как root. Войдите в систему как root или используйте su или sudo .

Владелец не имеет значения, если не установлен флаг setuid . Но помните: setuid может быть очень опасным, потому что он всегда будет работать от имени пользователя root (или любого другого пользователя, владеющего файлом). Если ваша программа содержит уязвимости, злоумышленник может использовать ее для получения полного контроля над системой. Кроме того, если файл не содержится в защищенном каталоге, пользователь с правами на запись в каталог может менять владельцев по своему усмотрению.

Используйте chmod 4xxx <file> (где xxx - «обычный» режим), чтобы установить флаг setuid . Современные реализации также поддерживают chmod u+s <file>

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