11) Завершите работу всех запущенных вами процессов, переведя их на передний план и нажав клавиши Ctrl+C.
12) Завершите работу с Терминалом.
1. Закрепить представление о возможностях командного языка UNIX по управлению процессами, которым выделяются все необходимые ресурсы вычислительной системы
2. Научиться осуществлять управление существующими в системе процессами, изменяя их приоритеты и посылая им сигналы управления.
Изучаются команды:
nice - понижение приоритета процесса;
kill - посылка сигнала процессу.
1) Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.
2) Выведите на экран Терминала справку по следующим командам: nice, kill. Назначение и формат команд приведите в отчете.
3) Запустите процесс уes в оперативном режиме с перенаправлением вывода в устройство /dev/null («черная дыра»).
4) Приостановите выполнение процесса, используя команду kill.
5) Переведите процесс в фоновый режим. Проанализируйте сообщение на экране.
6) Убейте процесс, послав командой kill сигнал завершения процесса.
7) Запустите процесс поиска директорий в корневом каталоге в фоновом режиме (выводимые данные перенаправьте в файл или «черную дыру»).
8) Выведите на экран листинг характеристик (в длинном формате) процессов, инициализированных с Вашего терминала. Каково значение приоритета запущенного процесса? Какой процесс является родительским для запущенной процедуры.
9) Понизьте значение приоритета процедуры поиска. На что и как повлияет эта операция при управлением вычислительным процессом системы? Как отразятся её результаты в описателях процессов?
10) Убейте все созданные ранее процессы и завершите работу с Терминалом.
1. Объясните понятия процесса и ресурса. Какое их значение в организации вычислительного процесса в ОС UNIX?
2. Какая информация содержится в описателях процессов? Как просмотреть их содержание в процессе работы с системой?
3. Какими способами можно организовать выполнение программ в фоновом режиме?
4. Какие особенности выполнения программ в фоновом режиме? Как избежать вывода фоновых сообщений на экран и прерывания выполнения фоновых программ при прекращении сеанса работы с системой?
5. Как пользователь может повлиять на распределение ресурсов между активными процессами?
6. Как можно прервать выполнение активных процессов? Какая информация для этого необходима и откуда она извлекается?
Каждый файл принадлежит конкретному пользователю. Владелец файла имеет абсолютный контроль над теми, кто из пользователей системы может иметь доступ к файлу. Владельцу предоставлены средства командного языка, позволяющими разрешать или запрещать доступ к своим файлам и каталогам.
Права процессов пользователей при доступе к файлу кодируются в атрибутах защиты файла. Атрибуты сопровождают каждый файл, хранятся в описателях файлов, на которые в каталоге имеются ссылки, и доступны для анализа и изменения посредством специальных команд ОС UNIX. Атрибуты защиты файла определяют права доступа трем видам процессов: процессам пользов ателя - владельца файла (u - user), процессам группы владельца файла (g - group) и процессам остальных пользователей (o - other), не попавших ни в одну из двух предыдущих категорий. Код атрибутов прав доступа пользователей трех перечисленных категорий для каждого файла отображается в полном листинге каталога символьным кодом в виде комбинации следующих символов:
r - разрешение на чтение или на выполнение файла, для каталога - просмотр содержимого каталога (список всех файлов);
w - разрешение модификации или удаления файла, для каталога - включение или удаление файлов;
x - разрешение выполнения файла (совместно с - r), для каталога - поиск по каталогу конкретных отдельных файлов или сделать каталог текущим.
Например, полный листинг каталога /udd/user1/lev может иметь следующий вид:
-rwxr-xr-x 1 lev user1 171 Mar 4 14:20 fil1.c
drwxr-xr-x 2 lev user1 32 Mar 4 14:51 hh
Здесь файл fil1.c, владельцем которого является пользователь со входным именем lev, является обычным, содержит исходный текст программы на языке Си длиной 171 байт, доступен владельцу для чтения, записи и выполнения, членам группы и прочим пользователям - только для чтения и выполнения. Директория hh защищена для включения новых и удаления существующих файлов.
Для изменения значений кодов защиты только указанных в команде файлов служит команда:
chmod <коды защиты> <список_файлов>
Коды защиты (r, w, x) могут быть заданы только владельцем файла в символьном или числовом виде. Атрибуты задаются для владельца (u), его группы (g) и остальных пользователей (o) или для всех категорий пользователей одновременно (a).
Над символьными атрибутами защиты можно выполнять три следующие операции отдельно для владельца, для группы-владельца и для всех остальных пользователей:
= - присвоить значения кодов доступа (замена существующих);
+ - добавить значения кодов доступа;
- - отобрать права доступа.
Необходимо отметить, что новый файл обычно создается по умолчанию как невыполняемый, со стандартным набором прав доступа:
rw-rw-rw- - для файла;
rwxrwxrwx - для каталога.
Например, необходимо сделать некоторый файл shproc1 выполняемым, если он был создан как обычный. Для этого можно использовать следующую команду:
$ chmod u+x shproc1
$ shproc1
< Выполнение программы из файла shproc1 >
$
Эти действия необходимы и при формировании и выполнении shell-процедуры.
chmod a+x f1 - в данном случае файл f1 становится доступным для исполнения всем пользователям;
chmod a=rwx f2 - предоставляются все права всем категориям пользователей.
Числовые значения кодов защиты кодируются трехразрядным восьмеричным числом, где существование соответствующего кода соответствует наличию единицы в двоичном эквиваленте восьмеричной цифры этого числа, отсутствие атрибута - нулю.
Например:
Символьное представление: rwx r-x r--
Двоичное представление: 111 101 100
Восьмеричное представление: 7 5 4
Поэтому следующая команда:
chmod 0754 f3
- эквивалентна команде:
chmod u=rwx,g=rx,o=r f3
В результате выполнения команд в любой из приведенных форм коды доступа файла f3 приобретут следующий вид:
ls -l f3
”””””””””””””””””””””””””””””
-rwxr-xr-- ....................... f3
”””””””””””””””””””””””””””””
Таким образом, файл f3 является выполняемым для владельца и группы, чтение его разрешено всем пользователям, модифицировать файл может только владелец.
С целью защиты файла от удаления надо отобрать право (w) как у файла, так и у каталога, в котором находится файл.
Стандартные значения кодов прав доступа устанавливает администратор системы. Однако пользователь в rsh может изменить временно (до конца сеанса работы) значение кода для всех своих новых файлов с помощью команды:
$umask [-r] <режим-доступа>
Собственно маска - это двоичный код, с этим кодом и двоичным кодом установленным ране выполняются некоторые логические операции - в результате операции вычисляются новые коды защиты. В ksh - возможно символьное представление кодов защиты в umask, а собственно числовое значение маски просчитывается системой автоматически и используется для вычисления результирующих заданных в команде кодов доступа; ключ -S -выводит на экран текущие символьные значения кодов; без ключа - команда выводит числовое значение маски.
Имеются и другие возможности управления правами доступа. Приведенные ниже функции может выполнять только владелец файла или администратор.
chown нов_владелец имя_файла – владелец передает права владения данным файлом другому пользователю или группе.
chgrp нов_группа имя_файла - передача прав другой группе (сменить группу).
1. Изучить принципы защиты файлов от несанкционированного доступа
2. Изучить влияние задаваемых прав доступа к файлу на выполнение различных команд по обработке этих файлов .
Изучаются команды:
chmod - изменить права доступа к указанному файлу.
1) Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.
2) Выведите на экран Терминала справку по следующим командам: chmod. Назначение и формат команд приведите в отчете.
3) Создайте в Вашем HOME-каталоге один текстовый файл, например с именем f1. Выведите на экран полный листинг каталога.
4) Проанализируйте и умейте объяснить какие права доступа к f1 имеет владелец файла, его группа и остальные пользователи.
5) Выведите на экран содержимое файла f1. Объясните почему операция выполнилась успешно.
6) Запретите права на чтение f1 владельцу и группе. Попытайтесь вывести на экран текст файла. Объясните почему операция не выполняется.
7) Удалите права на запись в файл. Попытайтесь добавить к файлу текст и удалить его. Объясните результат.
8) Завершите работу с Терминалом
1. Изучить принципы защиты каталогов от несанкционированного доступа
2. Изучить влияние задаваемых прав доступа к каталогу на выполнение различных команд по обработке этих каталогов.
Изучаются команды:
chmod - изменить права доступа к указанному каталогу.
1) Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.
2) Выведите на экран Терминала справку по следующим командам: chmod. Назначение и формат команд приведите в отчете.