###### tags: `netology` `security` # Домашнее задание к занятию «Программирование на Go - основы языка и типовые конструкции» 1. Какое сообщение выводится, если вы указали несуществующий PID? `no such process` --- 2. Что происходит с процессом, при отправке сигнала syscall.SIGKILL? Процесс завершается, выводится сообщение `Killed` --- 3. Что происходит с процессом, при отправке сигнала syscall.SIGSEGV? Процесс завершается, выводится сообщение `Segmentation fault (core dumped)` --- 4. Что выведет программа killer, если попытаться отправить сигналы PID = 1? Что это за процесс с PID = 1? `operation not permitted` Это init процесс, родительский --- 5. Что произойдёт*, если запустить nano с помощью sudo, а killer от лица обычного пользователя? killer output: `operation not permitted` process output: ничего, процесс жив --- 6. Что произойдёт*, если запустить nano с помощью sudo и killer с помощью sudo (sudo ./killer)? killer output: `<nil>` process output: `Killed` / `Segmentation fault (core dumped)` Процесс завершится как в пп. 2 и 3 --- 7. Что произойдёт, если попытаться отправить сигналы PID = 1 с помощью sudo (sudo ./killer)? Ничего. В Linux есть механиз защиты от завершения init процесса. `man 2 kill` --- 8. Проведите небольшое исследование и выясните, за что отвечают сигналы SIGKILL и SIGSEGV SIGKILL - используется для немедленного завершения процесса, эдакий `АЗ-5` SIGSEGV - используется при попытках обращения к несуществующей области памяти или при обращениях с нарушением прав доступа.