Почему не делает setuid на работе/sbin/dhclient, как предназначено?

Можно использовать другие инструменты:

  • grep: if echo "$INPUT" | grep --quiet '\bdolor\b'
1
22.01.2014, 21:18
1 ответ

sudo устанавливает и реальный и эффективный uids. Создание исполняемого файла setuid только заставляет эффективный uid быть установленным, когда исполняемый файл выполняется. Если исполняемый файл манипулирует uids для разветвления непривилегированных детей, как dhclient делает, можно легко сбить его с толку путем выполнения его с некорневым реальным uid.

Обходное решение должно было бы записать исполняемый файл обертки, который действительно только устанавливает реальный uid, чтобы соответствовать эффективному uid и затем выполнить dhclient. Сделайте обертку setuid, базируются и удаляют бит setuid из dhclient.

1
27.01.2020, 23:53
  • 1
    , как исполняемый файл обертки установил бы реальный uid? Был бы обертка просто говорить sudo dhclient? –  merlin2011 23.01.2014, 00:00
  • 2
    , я принимаю программу C, которая назвала бы setreuid (), затем execve (). –  Kyle Jones 23.01.2014, 00:51

Теги

Похожие вопросы