Как “sendmail: MTA: принятие соединений” корректная командная строка?

cat /proc/21637/cmdline говорит sendmail: MTA: accepting connections который я не могу вообразить, чтобы быть корректной командной строкой. Так как я не имею sendmail установленный, и при этом я не нахожу его в PATH и даже что-то, что кажется удобным в выводе locate sendmail это делает меня взволнованным (я задам отдельный вопрос, если Вы скажете мне, что cmdline указывает на проблему).

Я использую Ubuntu 16.10 с 4.8.0-32-универсальным Linux.

2
задан 6 January 2017 в 17:49

1 ответ

Приложения могут (и делать), переписывают их параметры командной строки после того, как они запустили. Иногда это сделано в целях безопасности, иногда для простоты презентации. IIRC, mysql или некоторая другая команда DB удалила бы пароли, данные как аргументы от списка аргументов.

Я не уверен в методе, обычно используемом для этого, но один путь передолжностному лицу с новыми аргументами:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *args[], char *env[])
{
    char *argv[] = {"bar: accepting", "blah", NULL};
    if (argc == 1)
    {
        int fd = open("/proc/self/exe", O_RDONLY);
        fexecve(fd, argv, env);
    }
    else
        sleep(100);
}

Тестирование:

$ make foo
cc     foo.c   -o foo
$ ./foo & pgrep -fa bar
[1] 18047
18047 bar: accepting blah

Отметьте PIDs.

Чтобы видеть, что фактический исполняемый файл используется, проверить /proc/<PID>/exe:

$ ./foo & ls -l /proc/$!/exe
[1] 18025
3
lrwxrwxrwx 1 muru muru 0 Jan  7 00:59 /proc/18025/exe -> /home/muru/foo
3
ответ дан 2 December 2019 в 02:48

Другие вопросы по тегам:

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