Действительно ли возможно закрыть программу другого пользователя? Как?

В более высоком уровне те, которые точно походят на это обычно, используют что-то как newt/whiptail или диалоговое окно. Тот конкретный смотрит как, он - newt/whiptail, так как диалоговое окно имеет тенденцию тянуть кадр вокруг средств управления как это поле списка. Для другого примера конфигурация ядра Linux использует сокращение пользовательская версия диалогового окна (без дополнительных функций, которые это не использует, и я предположил бы, что yes/no/module флажок является пользовательской функцией),

3
07.10.2011, 19:00
3 ответа

Это от kill(2) страница справочника:

Чтобы процесс имел разрешение отправить сигнал, это должно или быть привилегировано (в соответствии с Linux: имейте возможность CAP_KILL), или реальный или эффективный идентификатор пользователя процесса отправки должен равняться реальному или сохраненному идентификатору пользователя набора целевого процесса. В случае SIGCONT это удовлетворяет, когда отправление ‐ луг и получающие процессы принадлежит той же сессии.

Таким образом, по существу, при нормальных обстоятельствах, если Вы не корень (и не имеют никакого способа стать корнем или что другой пользователь, через sudo или setuid программы), Вы не можете уничтожить процесс другого пользователя.

9
27.01.2020, 21:10

Для корня и панели только возможно уничтожить процесс, принадлежавший панели. Программы Sudo/setuid изменяют полномочия нечто на те из корня.

1
27.01.2020, 21:10

См. Ответ Жиля на Почему bash игнорирует SIGTERM?

Во-первых, это не относится к bash. ATT ksh, dash и zsh ведут себя одинаково: они игнорируют SIGTERM и SIGQUIT во время редактирования командной строки; что касается mksh, он также не завершает работу, но обрабатывает их как SIGINT.

Как руководство по ksh, так и руководство по bash оправдывают игнорирование SIGTERM в следующих терминах:

so that kill 0 does not kill an interactive shell

kill 0 уничтожает все процессы в группе процессов, в которой находится оболочка¹. Вкратце, группа процессов состоит из всех процессов, выполняемых на переднем плане на терминале, или всех процессов в фоновом или приостановленном задании.

0
27.01.2020, 21:10

Теги

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