24. С правами пользователя создайте в своей директории сценарий с именем abcd.Сценарий можно создать с помощью команды cat:
cat >abcd
#! /bin/bash
while : rem обратите внимание на пробел перед двоеточием!
# примечание вводить не нужно
do
echo HELLO!
Done
Ctrl+d
25. Используя команду chmod, присвойте пользователю права на чтение и исполнение данного сценария. Запустите сценарий на исполнение (на экран должны непрерывно выводиться приветствия HELLO!).
26. Перейдите в третью консоль, с помощью команды topпросмотрите список процессов и найдите в нем «зависший» процесс, запущенный пользователем (на самом деле это только имитация «зависания», которое пользователь легко может прекратить сам). Прочитайте идентификатор процесса PID.
27. Нажатием Ctrl+C из второй консоли остановите процесс. Как изменилось при этом состояние процесса?
28. Повторно запустите из второй консоли процесс, перейдите в первую консоль и отправьте «зависшему» процессу сигнал на останов (командой killили внутренней командой k из работающей утилиты top).
29. Запустите ранее скопированную в каталог /bin утилиту signorer. Отправьте ей из этой же консоли несколько прерывающих сигналов в виде комбинаций клавиш (Ctrl-C, Ctrl-\, Ctrl-Z). Понаблюдайте за реакцией процесса. Как вы полагаете, по какой причине этот процесс не удается остановить?
30. Перейдите в другую консоль и отправьте «непослушному» процессу сигнал kill -20 PID.Как реагирует процесс на данный сигнал? Посмотрите в электронном справочнике, что означает данный сигнал.
31. С помощью команды kill -9 PID отправьте этому процессу сигнал принудительного завершения. С другой консоли проконтролируйте выполнение команды. Остановился ли процесс? Остался ли он в списке процессов? Какая программа на самом деле перехватывает и исполняет команду kill -9 PID?
32. С помощью команды echo $PATH поочередно из консоли администратора и пользователя user1 выведите список директорий, в которых производится поиск исполняемых файлов, заданных только по имени. В чем заключается различие выведенных списков? Почему в списке PATH администратора отсутствует текущий каталог (.)? Почему в списке PATH пользователя отсутствует каталог /sbin? Имеет ли пользователь возможность изменить порядок проверки каталогов для администратора?
33. Перейдите в первую консоль и повторите запуск утилит с правами суперпользователя.
34. Убедитесь в том, что пользователю разрешен запуск указанных утилит. Объясните, почему пользователь не может запустить утилиты с некоторыми «критичными» параметрами? Где, по вашему мнению, расположен механизм контроля за ходом исполнения таких команд (в ядре операционной системы, в командной оболочке, в самой утилите?). Ответ обоснуйте.
35. С правами пользователя скопируйте в свой рабочий каталог один из исполняемых файлов с параметром SUIDкаталога /bin (исполняемые файлы выделены цветом и символом *, а параметр SUID отмечен символом s в правах владельца на исполнение). Как изменились права доступа к файлу после его копирования?
36. Из второй консоли с правами пользователя скопируйте в свой домашний каталог утилиту, которую разрешено запускать только администратору (например, chattr). Копирование производите с параметрами, гарантирующими переход копии во владение пользователю. Убедитесь, что пользователь имеет на скопированный файл все необходимые права. Попробуйте использовать свою копию утилиты по ее назначению (в случае копирования утилиты chattr установите дополнительный атрибут +i одному из своих файлов). Сделайте выводы.