tftpd работает как корень, несмотря на явную опцию “- пользователь tftp”

Можно использовать, находят для этого. Скажем, мы хотим все .py файлы в текущем каталоге, измененном за прошлые 2 дня:

find -maxdepth 1 -name '*.py' -mtime -2
2
01.02.2014, 19:53
1 ответ

От исходного кода казалось бы, что демон TFTP только отбрасывает полномочия пользователя root после того, как связь была установлена.

Править

В tftpd.c в определенный момент существует a

while (1) {

строка, и у основания цикла дочерний процесс разветвлена:

    /*
     * Now that we have read the request packet from the UDP
     * socket, we fork and go back to listening to the socket.
     */
    pid = fork();
    if (pid < 0) {
        syslog(LOG_ERR, "fork: %m");
        exit(EX_OSERR);     /* Return to inetd, just in case */
    } else if (pid == 0)
        break;              /* Child exit, parent loop */
}

/* Child process: handle the actual request here */

В коде, который следует в определенный момент setuid вызов сделан для отбрасывания полномочий пользователя root

4
27.01.2020, 22:00
  • 1
    Действительно ли можно ли сослаться на код, в котором Вы видели это? –  slm♦ 01.02.2014, 21:47
  • 2
    @slm я надеюсь, что это вчера разъясняет вещи –  brm 02.02.2014, 00:10
  • 3
    Да благодарит занять время, чтобы сделать это, это делает Ваш ответ намного более значимым! –  slm♦ 02.02.2014, 01:55
  • 4
    @brm, я могу действительно видеть, что новое соединение устанавливается как пользователь tftp. Любая идея, почему основной deamon работает как root и не как tftp также? Это могло быть возможной проблемой безопасности? –  Martin Vegter 02.02.2014, 02:26
  • 5
    Не уверенный, но я думаю, что полномочия пользователя root необходимы и чтобы связать с номером порта ниже 1024 и сделать –  brm 05.02.2014, 18:38

Теги

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