Uploaded by Elena Elina

Лаб.работа ОПЕР.СИСТ.

advertisement
1
Лабораторная работа №2. Управление памятью и вводом/выводом в ОС Windows
Цель работы: Практическое знакомство с управлением вводом/выводом в операционных
системах Windows и кэширования операций ввода/вывода.
План проведения занятия:
1. Ознакомиться с краткими теоретическими сведениями.
2. Ознакомиться с назначением и основными функциями Диспетчера задач Windows.
3. Приобрести навыки применения командной строки Windows. Научиться запускать
останавливать и проверять работу процессов.
4. Сделать выводы о взаимосвязи запушенных процессов и оперативной памятью
компьютера.
5. Подготовить отчет для преподавателя о выполнении лабораторной работы и
представить его в соответствии с графиком.
Оборудование:
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: ОС Windows 7, текстовый процессор Microsoft Word.
Краткие теоретические сведения:
Необходимость обеспечить программам возможность осуществлять обмен данными
с внешними устройствами и при этом не включать в каждую двоичную программу
соответствующий двоичный код, осуществляющий собственно управление устройствами
ввода/вывода, привела разработчиков к созданию системного программного обеспечения и,
в частности, самих операционных систем.
Программирование задач управления вводом/выводом является наиболее сложным и
трудоемким, требующим очень высокой квалификации. Поэтому код, позволяющий
осуществлять операции ввода/вывода, стали оформлять в виде системных библиотечных
процедур; потом его стали включать не в системы программирования, а в операционную
систему с тем, чтобы в каждую отдельно взятую программу его не вставлять, а только
позволить обращаться к такому коду. Системы программирования стали генерировать
обращения к этому системному коду ввода/вывода и осуществлять только подготовку к
собственно операциям ввода/вывода, то есть автоматизировать преобразование данных к
соответствующему формату, понятному устройствам, избавляя прикладных программистов
от этой сложной и трудоемкой работы. Другими словами, системы программирования
вставляют в машинный код необходимые библиотечные подпрограммы ввода/вывода и
обращения к тем системным программным модулям, которые, собственно, и управляют
операциями обмена между оперативной памятью и внешними устройствами.
Таким образом, управление вводом/выводом — это одна из основных функций любой
ОС. Одним из средств правления вводом/выводом, а также инструментом управления
памятью является диспетчер задач Windows, он отображает приложения, процессы и
службы, которые в текущий момент запущены на компьютере. С его помощью можно
контролировать производительность компьютера или завершать работу приложений,
которые не отвечают.
При наличии подключения к сети можно также просматривать состояние сети и
параметры ее работы. Если к компьютеру подключились несколько пользователей, можно
увидеть их имена, какие задачи они выполняют, а также отправить им сообщение.
Также управлять процессами можно и «вручную» при помощи командной строки.
Команды Windows для работы с процессами:
 at - запуск программ в заданное время
 Schtasks - настраивает выполнение команд по расписанию
 Start - запускает определенную программу или команду в отдельном окне.
2


Taskkill - завершает процесс
Tasklist - выводит информацию о работающих процессах
Для получения более подробной информации, можно использовать центр справки и
поддержки или команду help (например: help at)
 command.com - запуск командной оболочки MS-DOS
 cmd.exe - запуск командной оболочки Windows
Ход работы:
Задание 1. Работа с Диспетчером задач Windows 7.
1. Запустите ранее установленную ОС Windows 7.
2. Запуск диспетчера задач можно осуществить двумя способами:
1) Нажатием сочетания клавиш Ctrl+Alt+Del. При использовании данной
команды не стоит пренебрегать последовательностью клавиш. Появится меню,
в котором курсором следует выбрать пункт «Диспетчер задач».
2) Переведите курсор на область с показаниями системной даты и времени и
нажмите правый клик, будет выведено меню, в котором следует выбрать
«Диспетчер задач».
3. Будет выведено окно как на рис. 21.
Рис. 21. Диспетчер задач Windows 7.
4. В диспетчере задач есть 6 вкладок:
1) Приложения
2) Процессы
3) Службы
4) Быстродействие
5) Сеть
6) Пользователи
o Вкладка «Приложения» отображает список запущенных задач (программ)
выполняющиеся в настоящий момент не в фоновом режиме, а также отображает их
состояние. Также в данном окне можно снять задачу переключиться между задачами
и запустить новую задачу при помощи соответствующих кнопок.
3
o Вкладка «Процессы» отображает список запущенных процессов, имя пользователя
запустившего процесс, загрузку центрального процессора в процентном
соотношении, а также объем памяти используемого для выполнения процесса. Также
присутствует возможность отображать процессы всех пользователей, либо
принудительного завершения процесса. Процесс — выполнение пассивных
инструкций компьютерной программы на процессоре ЭВМ.
o Вкладка «Службы» показывает, какие службы запущены на компьютере. Службы
— приложения, автоматически запускаемые системой при запуске ОС Windows и
выполняющиеся вне зависимости от статуса пользователя.
o Вкладка «Быстродействие» отображает в графическом режиме загрузку процессора,
а также хронологию использования физической памяти компьютера. Очень
эффективным инструментом наблюдения является «Монитор ресурсов». С его
помощью можно наглядно наблюдать за каждой из сторон «жизни» компьютера.
Подробное изучение инструмента произвести самостоятельно, интуитивно.
o Вкладка «Сеть» отображает подключенные сетевые адаптеры, а также сетевую
активность.
o Вкладка «Пользователи» отображает список подключенных пользователей.
5. После изучения диспетчера задач:
o Потренируйтесь в завершении и повторном запуске процессов.
o Разберите мониторинг загрузки и использование памяти.
o Попытайтесь запустить новые процессы при помощи диспетчера, для этого можно
использовать команды: cmd, msconfig.
Задание 2. Командная строка Windows.
1. Для запуска командной строки в режиме Windows следует нажать:
(Пуск) > «Все программы» > «Стандартные» > «Командная строка»
2. Поработайте выполнением основных команд работы с процессами: запуская,
отслеживая и завершая процессы.
Основные команды
Schtasks - выводит выполнение команд по расписанию
Start - запускает определенную программу или команду в отдельном окне.
Taskkill - завершает процесс
Tasklist - выводит информацию о работающих процессах
Рис. 22. Командная строка Windows
3. В появившемся окне (рис. 22) наберите:
cd/ - переход в корневой каталог;
4
cd windows – переход в каталог Windows.
dir - просмотр содержимого каталога.
В данном каталоге мы можем работать с такими программами как «WordPad» и
«Блокнот».
4. Запустим программу «Блокнот»:
C:\Windows > start notepad.exe
Отследим выполнение процесса:
C:\Windows > tasklist
Затем завершите выполнение процесса:
C:\Windows > taskkill /IM notepad.exe
5. Самостоятельно, интуитивно, найдите команду запуска программы WordPad.
Необходимый файл запуска найдите в папке Windows.
6. Выполнение задания включить в отчет по выполнению лабораторной работы.
Задание 3. Самостоятельное задание.
1. Отследите выполнение процесса explorer.exe при помощи диспетчера задач и
командной строки.
2. Продемонстрируйте преподавателю завершение и повторный запуск процесса
explorer.exe из:
 Диспетчера задач;
 Командной строки.
3. Выполнение задания включить в отчет по выполнению лабораторной работы.
Контрольные вопросы:
1. Дайте понятие процессу в операционной системе.
2. Дайте понятие службе в операционной системе.
3. Причислите основные команда работы с процессами при помощи командной строки.
Литература 1,3,4
5
Лабораторная работа №3.Исследование файловых систем и управления файлами в
ОС Windows
Цель работы: изучить общие понятия о файловых системах и изучить методы управления
файлами.
План проведения занятия:
1. Ознакомиться с краткими теоретическими сведениями.
2. Приобрести навыки применения командной строки Windows. Научиться создавать,
перемещать и удалять файлы и каталоги.
3. Подготовить отчет для преподавателя о выполнении лабораторной работы и
представить его в соответствии с графиком.
Оборудование:
Программная часть: ОС Windows, текстовый процессор Microsoft Word.
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Краткие теоретические сведения:
Совокупность каталогов и системных структур данных, отслеживающих размещение
файлов на диске и свободное дисковое пространство, называется файловой системой.
Основной структурной единицей любой файловой системы является файл и каталог.
Файл – минимальная структурированная именованная последовательность данных.
Каталог (папка) является своеобразной объединяющей структурой для расположенных на
диске файлов. Каталог может содержать в себе файлы и другие (вложенные) каталоги.
Каталоги и файлы образуют на диске древовидную иерархическую структуру – дерево
каталогов. Единственный каталог не входящий ни в одну из директорий называется
корневым каталогом.
Магнитные диски являются устройствами произвольного доступа. В них каждая
запись данных имеет свой уникальный адрес, обеспечивающий непосредственный доступ к
ней, минуя все остальные записи. Для хранения данных служит диск (пакет из нескольких
дисков), покрытый ферромагнитным слоем. Запись на магнитный диск и считывание данных
с него осуществляется головками чтения/записи.
Рис. 23 Структура поверхности магнитного диска
Поверхность диска разбита на дорожки представляющие собой окружности (рис.
23). Дорожки разделены на секторы. Размер сектора обычно составляет 512 байт.
В большинстве файловых систем пространство на диске выделяется кластерами,
которые состоят из нескольких секторов. Кластер – минимальный размер места на диске,
которое может быть выделено для хранения одного файла. Перед тем, как диск может быть
6
использован для записи данных, он должен быть размечен — на его дорожки должны быть
записаны заголовки секторов с правильными номерами дорожки и сектора, а также, если
это необходимо, маркеры. Как правило, при этом же происходит тестирование поверхности
диска для поиска дефектов магнитного слоя. Не следует путать эту операцию — физическое
форматирование диска — с логическим форматированием, заключающемся в создании
файловых систем. Современные жесткие диски обычно требуют физической разметки при
их изготовлении.
Один физический жесткий диск может быть разделен на несколько разделов –
логических дисков (томов). Каждый логический диск представляет собой как бы отдельное
устройство. Следовательно, на нем может быть своя файловая система и свой корневой
каталог.
В операционных системах MS-DOS и Windows каждое дисковое устройство
обозначается латинской буквой. Для имени логического диска используются буквы от A до
Z. Буквы A и B обозначают дисководы гибких магнитных дисков (FDD). Начиная с буквы
C, именуются разделы жесткого диска (HDD), дисководы оптических дисков и виртуальные
диски. Для обращения к файлу используется следующая спецификация:
устройство:\путь\имя файла.расширение
Здесь путь – список каталогов, входящих друг в друга, в последнем из которых и
содержится указанный файл. Если путь не указан, следует что, файл находится в корневом
каталоге данного диска. В MS-DOS имя файла состоит из 8 символов, точки и 3 символов
расширения имени файла. Точка отделяет собственно имя от расширения. Имя файла может
состоять из латинских букв, цифр 0 – 9, некоторых других символов, и не может содержать
пробел. В Windows поддерживаются длинные имена файлов (от 1 до 255 символов), имя
может содержать пробелы. При использовании файловых систем HPFS и NTFS имя файла
может содержать несколько точек.
В именах файлов нельзя использовать символы “ * ” и “ ? ”, так как они используются
в масках имен при поиске файлов.
Расширение имени необходимо для определения типа файла и связывания файла с
определенной программой, с помощью которой он может быть открыт. Хотя имя файла
может и не иметь расширения.
Различают следующие типы файлов:
 Текстовые файлы. Текстовые файлы могут содержать простой или размеченныйтекст,
в кодировке ASCII, ANSI или UNICODE. Текст без разметки содержит только
отображаемые символы и простейшие управляющие символы (возврат каретки и
табуляции). Размеченный текст содержит бинарную и символьную разметку
(межстрочный интервал, новая страница и т.п.), может содержать таблицы и рисунки;
 Графические файлы – файлы, содержащие точечные или векторные изображения;
 Файлы мультимедиа – различают файлы содержащие оцифрованный звук (файлы
аудио) и фалы видео (содержат изображение и звук);
 Исполняемые файлы – программы готовые к исполнению (файлы с расширением exe
и com).
 Архивные файлы – файлы архивов rar, tar, zip, cab и т.п.
 Файлы библиотек – файлы с расширением DLL, OCX и LIB;
 Файлы данных – бинарные или текстовые файлы с различным расширением,
используемые программами во время работы.
Информация о логической организации физического жесткого диска (числе
логических дисков, их размере) расположена в главной загрузочной записи (MBR). MBR
расположена в самом первом секторе жесткого диска и не входит в структуру файловой
системы.
7
В операционных системах семейства UNIX разделение на логические диски
отсутствует, а используется понятие корневого каталога файловой системы. Спецификация
обращения к файлу выглядит следующим образом:
/путь/имя файла.тип
Современные операционные системы имеют возможность работать с несколькими
файловыми системами одновременно. Прежде чем операционная система сможет
использовать файловую систему, она должна выполнить над этой системой операцию,
называемую монтированием.
В общем случае операция монтирования включает следующие шаги:
 Проверку типа монтируемой файловой системы; проверку целостности файловой
системы;
 Считывание системных структур данных и инициализацию соответствующего
модуля файлового менеджера (драйвера файловой системы). В некоторых случаях
— модификацию файловой системы с тем, чтобы указать, что она уже смонтирована;
 Включение новой файловой системы в общее пространство имен. Многие
пользователи MS DOS никогда не сталкивались с понятием монтирования. Дело в том,
что эта система выполняет упрощенную процедуру монтирования при каждом
обращении к файлу.
Ход работы:
В данной работе продолжаем изучение работы с командной строкой Windows.
Задание 1. Проверка работы команд.
Потренироваться в выполнении нижеследующих команд. Работу проводить на
установленной ранее ОС Windows 7.
1. Команда смены текущего диска
A: - переход на диск А
C: - переход на диск С
2. Просмотр каталога
dir (путь)(имя_файла) (/p) (/w)
Если не введены путь и имя файла, то на экран выведется информация о содержимом
каталога (имена файлов, их размер и дата последнего изменения).
Параметр /p задает вывод информации в поэкранном режиме, с задержкой до тех пор, пока
пользователь не щелкнет по какой-либо клавише. Это удобно для больших каталогов.
Параметр /w задает вывод информации только об именах файлов в каталоге по пять имен в
строке.
3. Переход в другой каталог каталога
cd <имя каталога>
4. Создание каталога
md <имя каталога>
5. Удаление каталога
rd <имя каталога>
6. Создание текстовых файлов
copy con <имя_файла>
После ввода этой команды нужно будет поочередно вводить строки файла. В конце каждой
строки надо щелкать клавишей Enter. А после ввода последней - одновременно нажать Ctrl
и Z, а затем Enter. Или клавишу F6, затем Enter.
7. Удаление файлов
del (путь)имя_файла
Путь прописывается только тогда, когда удаляемый файл находится в другом каталоге.
8. Переименование файлов
ren (путь)имя_файла1 имя_файла2
8
Имя_файла1 - имя файла, который вы хотите переименовать.
Имя_файла2 - новое имя файла, которое будет ему присвоено после выполнения команды.
Путь прописывается только тогда, когда удаляемый файл находится в другом каталоге.
9. Копирование файлов
copy имя_файла (путь)имя_файла1
Путь прописывается, если файл копируется в другой каталог.
Задание 2. Индивидуальная работа.
1. Получить у преподавателя индивидуальное задание.
2. Выполнить, результат внести в отчет о выполнении лабораторной работы.
3. Представить отчет преподавателю.
Контрольные вопросы:
1. Что такое «файл»?
2. Перечислите основные типы файлов.
3. Перечислите основные расширения файлов.
4. Расскажите о процессе монтирования файловой системы.
Литература 1,3,4
9
Лабораторная работа №4.Установка операционной системы Linux
Цель работы: Приобрести опыт установки операционной системы Linux.
План проведения занятия:
1. Закрепить знания о работе с программой VirtualBox.
2. Создать виртуальную машину исходя из предоставленной информации о
минимальных аппаратных требований предлагаемой к установке и изучению
операционной системы (ОС).
3. Установить ОС на виртуальный компьютер. Разобрать процесс установки ОС на
этапы.
4. Познакомиться с основными группами программ входящих в состав ОС.
5. Подготовить отчет и сдать преподавателю в соответствии с графиком.
Оборудование:
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: программа VirtualBox, установочный диск либо образ диска с ОС
Linux Ubuntu 9, текстовый процессор Microsoft Word.
Краткие теоретические сведения:
Linux (полное название GNU/Linux, произносится «гну слэш ли́нукс») — общее
название UNIX-подобных операционных систем на основе одноимённого ядра и собранных
для него библиотек и системных программ, разработанных в рамках проекта GNU.
GNU/Linux работает на PC-совместимых системах семейства Intel x86, а также на IA64, AMD64, PowerPC, ARM и многих других.
К операционной системе GNU/Linux также часто относят программы, дополняющие
эту операционную систему, и прикладные программы, делающие её полноценной
многофункциональной операционной средой.
В отличие от большинства других операционных систем, GNU/Linux не имеет единой
«официальной» комплектации. Вместо этого GNU/Linux поставляется в большом количестве
так называемых дистрибутивов, в которых программы GNU соединяются сядром Linux и
другими программами.
Дистрибутив — это не просто набор программ, а ряд решений для разных задач
пользователей, объединённых едиными системами установки, управления и обновления
пакетов, настройки и поддержки.
Самые распространённые в мире дистрибутивы:
 Ubuntu — быстро завоевавший популярность дистрибутив, ориентированный на
лёгкость в освоении и использовании.
 openSUSE — бесплатно распространяемая версия дистрибутива SuSE,принадлежащая
компании Novell. Отличается удобством в настройке и обслуживании благодаря
использованию утилиты YaST.
 Fedora — поддерживается сообществом и корпорацией RedHat, предшествует
выпускам коммерческой версии RHEL.
 Debian GNU/Linux — международный дистрибутив, разрабатываемый обширным
сообществом разработчиков в некоммерческих целях. Послужил основой для
создания множества других дистрибутивов. Отличается строгим подходом к
включению несвободного ПО.
 Mandriva — французско-бразильский дистрибутив, объединение бывших Mandrake и
Conectiva.
 Archlinux — ориентированный на применение самых последних версий программ и
постоянно обновляемый, поддерживающий одинаково как бинарную, так и
10
установку из исходных кодов и построенный на философии простоты KISS, этот
дистрибутив ориентирован на компетентных пользователей, которые хотят иметь всю
силу и модифицируемость Linux, но не в жертву времени обслуживания.
Помимо перечисленных, существует множество других дистрибутивов, как
базирующихся на перечисленных, так и созданных с нуля и зачастую предназначенных для
выполнения ограниченного количества задач.
В отличие от Microsoft Windows (Windows NT), Mac OS (Mac OS X) и коммерческих
UNIX-подобных систем, GNU/Linux не имеет географического центра разработки. Нет и
организации, которая владела бы этой системой; нет даже единого координационного
центра. Программы для Linux — результат работы тысяч проектов. Некоторые из этих
проектов централизованы, некоторые сосредоточены в фирмах. Многие проекты объединяют
хакеров со всего света, которые знакомы только по переписке. Создать свой проект или
присоединиться к уже существующему может любой и, в случае успеха, результаты работы
станут, известны миллионам пользователей. Пользователи принимают участие в
тестировании свободных программ, общаются с разработчиками напрямую, что позволяет
быстро находить и исправлять ошибки и реализовывать новые возможности.
История развития UNIX-систем. GNU/Linux является UNIX-совместимой, однако
основывается на собственном исходном коде
Именно такая гибкая и динамичная система разработки, невозможная для проектов с
закрытым кодом, определяет исключительную экономическую эффективность GNU/Linux.
Низкая стоимость свободных разработок, отлаженные механизмы тестирования и
распространения, привлечение людей из разных стран, обладающих разным видением
проблем, защита кода лицензией GPL — всё это стало причиной успеха свободных программ.
Конечно, такая высокая эффективность разработки не могла не заинтересовать
крупные фирмы, которые стали открывать свои проекты. Так появились Mozilla,
OpenOffice.org, свободный клон Interbase (Borland).
Ход работы:
Системные требования OC Linux Ubuntu 9:
 Процессор: 1 GHz, 32-разрядный;
 Оперативная память: 256 Mb (32-bit)
 Свободное дисковое пространство: 2 Гбайт HDD + 256 Мбайт для swap.
 Видеоадаптер: 64 MB памяти;
 Устройство чтения DVD-дисков.
В процессе установки не забываем регистрировать основные этапы установки в тетради.
1. Создадим виртуальную машину руководствуясь инструкциями лабораторной работы
1, учитываем тип операционной системы, а также минимальные системные
требования.
2. Загружаем предлагаемый образ для установки Linux Ubuntu и выбираем язык
установки (рис. 24):
11
Рис. 24. Выбор языка установки
Рис. 25. Меню установки:
3. Выбираем пункт «Установить Ubuntu» (рис. 25). И после непродолжительного
ожидания увидим приветствие с предложением начать установку:
12
Рис. 26. Подготовка к установке
4. Нажимаем кнопку «Forward» («Далее»), и увидим меню, в котором можно выбрать
часовой пояс (рис. 27):
Рис. 27. Настройка часового пояса
13
5. Нажимаем кнопку «Forward» («Далее»), и увидим меню выбора раскладки
клавиатуры (рис. 28):
Рис. 28. Настройка раскладки клавиатуры
6. Нажимаем кнопку «Forward» («Далее»), и увидим меню подготовки разделов
жесткого диска к установке Ubuntu (рис. 29).
Рис. 29. Подготовка дискового пространсва
14
7. Выбираем пункт «Использовать весь диск». Пункт «Указать разделы вручную
(расширенно)» выполняется только по указанию преподавателя, иначе нажимать не
следует.
8. Нажимаем «Forward» («Далее») и видим меню для идентификации будущего
пользователя ОС. Необходимо задать имя (Коля, Вася, Маша и т.п.). А также
используемое при входе. Во избежание проблем с утратой логина и пароля всем
студента задать:
o имя используемое для входа в систему (login) – user
o пароль чтобы держать запись в сохранности (password) – 123456
На вопрос о том, что пароль слишком простой и надо его сменить ответить отрицательно.
o имя компьютера в сети уточнить у преподавателя.
Рис. 30. Меню идентификации будущего пользователя
9. После заполнения всех пунктов меню идентификации, нажимаем «Forward»
(«Далее»), и видим окно со сводной информацией о будущей ОС.
15
Рис. 31. Сводка к установке системы
10. Окно со сводкой о будущей системе представлено - последняя возможность отменить
установку или внести какие-то изменения (рис. 31). Нажимаем кнопку
«Установить». И в следующем возникшем окне нажимаем «Перезагрузить».
11. Инструкцией предполагается извлечение физического диск, но так как мы работаем
с образом, нам необходимо его извлечь, для этого, во время перезагрузки, в верхнем
меню окна программы VirtualBox находим пункт «Устройства», и в появившемся
меню пункт «Отключить CD/DVD-ROM» (рис. 32). Затем нажмите сочетание клавиш
Ctrl+R – перезагрузка виртуальной машины.
Рис. 32. Меню отключения CD/DVD-ROM
16
12. И после небольшого диалога с вводом имени пользователя и пароля (имя пишется без
заглавных букв) мы увидим ОС Linux Ubuntu с подключенным рабочим столом
GNOME (рис. 33).
Рис. 33. ОС Linux Ubuntu с подключенным рабочим столом GNOME.
13. Установите дополнения к гостевой ОС (см. лаб. 1). После монтирования нового
носителя (смотри на рабочем столе), найдите на нем файл avtoran.sh, запустите его
двойным кликом и в появившемся диалоговом окне нажмите запустить через
терминал, далее процесс будет автоматизирован.
14. Подготовить отчет о выполнении лабораторной работы, описать основные этапы
установки ОС. Сдать отчет преподавателю в соответствии с графиком.
Контрольные вопросы:
1. Что такое Linux?
2. Что такое дистрибутив?
3. Перечислите основные дистрибутивы Linux. Объясните в чем их отличие.
4. Какую файловую систему использует для работы установленный Вами дистрибутив?
5. Перечислите основные этапы установки операционной системы.
Литература 1,3,4
17
Лабораторная работа №5. Терминал и командная оболочка операционной системы
Linux
Цель работы: Приобрести опыт работы с командной строкой ОС Linux, изучить основные
команды (рабочая станция, рабочий директорий, пользователи, дата, календарь, список
процессов, завершение работы)
План проведения занятия:
Ознакомиться с краткими теоретическими сведениями.
Приобрести навыки работы в терминале Linux. Научиться создавать новых
пользователей при помощи терминала Linux, задавать несложные команды.
Подготовить отчет для преподавателя о выполнении лабораторной работы и
представить его в соответствии с графиком.
Оборудование:
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: операционная система Linux Ubuntu, текстовый процессор Microsoft
Word.
Краткие теоретические сведения:
Стандартные команды в Linux отличаются от команд DOS и Windows - обычно они
короче. При работе с командной строкой как обычно мигающий курсор обозначает позицию
ввода текста, командная строка начинается с текущего пути и имени компьютера, за которым
следует символ $, % или #. Последний означает, что команды будут выполняться от имени
суперпользователя root. Символ ~ означает путь к текущей домашней директории
пользователя.
Большинство команд в Linux, не требующих вывода информации пользователю, в
случае успешного завершения вообще ничего не выводят на экран. Выводятся только
ошибки и предупреждения в случае нарушения нормального выполнения команды. Т.е. в
Linux действует общий принцип "молчит, значит работает".
В любом терминале Linux стрелками вверх/вниз на клавиатуре можно листать
историю команд, которая сохраняется между сеансами работы и различается для разных
пользователей и хостов. Набранное частично команда или имя файла или каталога в текущей
директории может быть автоматически дописано клавишей TAB. Если найдено более одного
варианта и однозначно продолжить команду по TAB невозможно, то выводятся все
подходящие варианты.
При работе в графической среде удобны эмуляторы терминала. Как правило они
поддерживают закладки - несколько терминалов в одном окне, поддерживают цветовые
схемы. Наиболее распространены эмуляторы терминала Gnome Terminal, Konsole, XFCE
Terminal.
Терминал — эмулятор консоли. Именно в терминале мы будем работать с CLI
(интерфейсом командной строки). Терминал часто также называют консолью или шеллом
(от англ. shell — оболочка). В будущем для объяснения я буду использовать все три эти
понятия, главное не забывайте что они синонимы.
Многие пользователи и в особенности администраторы серверов под Linux в работе
используют именно консоль, а не графическую оболочку, это связано с тем, что настройка
и конфигурация Linux в основном заключается, в редактировании текстовых
конфигурационных файлов. Даже если вы являетесь простым пользователем ОС Linux,
большинство инструкций по настройке написаны с использованием консоли и знать
основные команды жизненно необходимо.
18
Стоит обратить внимание на системные каталоги ОС в которых находятся файлы,
необходимые для управления и сопровождения системы, а также стандартные программы.
Их имена, расположение и содержание почти одинаковы почти во всех ОС Linux, поэтому
эти каталоги называют также стандартными. Впрочем, на данный момент эпитет
«стандартные» отражает скорее благие пожелания, чем действительность: иерархия
каталогов одинакова только для дистрибутивов, связанных единством происхождения, а
исторически сложившиеся различия создают опасность несовместимости разных
дистрибутивов.
Краткое описание основных каталогов сведено в таблицу 1.
Таблица 1.
Каталог
Назначение
/bin
/sbin
/boot
/home
/dev
/etc
/lib
/lost+found
/media
/mnt
/opt
/proc
/root
/tmp
/var
/usr
Основные программы, необходимые для работы в системе: командные оболочки,
файловые утилиты и т.п.
Команды для системного администрирования, а также программы, выполняемые
входе загрузки
Файлы, необходимые для загрузки системы (образ ядра)
Домашние каталоги пользователей, кроме root
Файлы устройств
Файлы настроек: стартовые сценарии, конфигурационные файлы графической
системы и различных приложений
Системные библиотеки, необходимые для основных программ, и модули ядра
Восстановленные после аварийного размонтирования части файловой системы
Сюда обычно монтируются съемные носители: компакт-диски, flash-накопители
Временные точки монтирования жестких дисков. Использовать этот каталог
необязательно: подмонтировать файловую систему можно к любому другому
каталогу
Дополнительные пакеты программ. Если программа, установленная сюда, больше
не нужна, то достаточно удалить ее каталог без обычной процедуры
деинсталляции
Виртуальная файловая система, дающая доступ к информации ядра (например,
выведите на экран файл /proc/cpuinfo). Другие файлы в этом каталоге в каждый
момент времени содержат информацию о выполняющихся в этот момент
программах
Домашний каталог суперпользователя. Домашние каталоги всех остальных могут
находиться на отдельном разделе, но /root должен быть в корневой файловой
системе, чтобы администратор всегда мог войти в систему для ремонтных работ
Временные файлы
Часто меняющиеся данные: системные журналы и протоколы приложений,
замки, почтовые ящики, очереди печати и т.п.
Практически все остальное: программы, исходные коды, документация. Сюда по
умолчанию устанавливаются новые программы
С точки зрения UNIX-подобных ОС, файл представляет собой поток или
последовательность байтов. Такой подход позволяет распространить понятие файла на
множество ресурсов не только локального компьютера, но и удаленного, связанного с
локальным сетью любого рода. Доступ к любому такому ресурсу осуществляется через
универсальный интерфейс, благодаря чему запись данных в файл, отправка их на физическое
устройство или обмен ими с другой работающей программой происходит аналогично. Это
очень упрощает организацию данных и обмен ими.
В ОС Linux можно выделить следующие типы файлов:
19

обычные файлы — последовательность байтов (текстовые документы, исполняемые
программы, библиотеки и т.п.);
 каталоги — именованные наборы ссылок на другие файлы;
 файлы физических устройств, подразделяющихся на:
o файлы блочных устройств, драйверы которых буферизуют ввод-вывод с
помощью ядра и файлы байт-ориентированных, или символьных, устройств,
позволяющих связанным с ними драйверам выполнять буферизацию
собственными средствами;
o символические ссылки (symlink, symbolic link);
o именованные каналы (named pipes);
o гнезда (sockets).
Таблица 2.
halt
стремительное и корректное выключение системы.
poweroff
корректное выключение системы.
reboot
корректное выключение с последующей загрузкой.
adduser
создание нового пользователя.
date
показывает нынешние дату и время, по системным часам ядра.
oclock
обычные часы
finger
отображение информации о пользователе
hostname
команда показывает личный номер этого узла сети
hwclock
интегрированные часы
uname
выводит информацию об используемой операционной системе
uptime
проявляет текущее время, длительность сеанса, число пользователей и
загруженность процессора.
usermod
изменение параметров пользователя.
users
отражает короткий перечень пользователя работающих в системе в этот
эпизод
whoami
демонстрирует нынешний личный номер пользователя, работающего в этом
терминале.
write
посылает известие иному пользователя, окружающему в системе, маршрутом
копирования строчек с терминала отправителя на терминал получателя.
демонстрирует пронумерованный перечень команд, которые Вы исполняли в
history
данном и прошлом сеансе. Само собой разумеется, что если в перечне
истории их очень немало, то увидите заключительные.
passwd
изменение пароля пользователя
ps
выводит перечень всех работающих действий.
times
проявляет абсолютное время исполнения действий для всей системы и этого
пользователя.
free
отражает информацию о своевременной памяти, подкачки, кэше, свободная
память, общественная и т.п.
ls
указывает все файлы в текущем каталоге в алфавитном порядке. По всей
вероятности аналогична dir.
clear
чистит экран терминала (в случае если данное вполне вероятно).
ifconfig
отражает состояние текущей конфигурации сети или же настраивает сетевой
интерфейс.
less
отражает содержимое указанного файла на экране и дозволяет комфортно
просмотреть.
mkpasswd
создает качественный пароль, состоящий по умолчанию из 9 знаков и
имеющий как минимум буквы в различном регистре и числа.
Ход работы:
20
1. Для выполнения данной работы будем использовать ранее установленный Linux
Ubuntu. Запускаем Linux. После прохождения идентификации включаем терминал
(рис. 34).
Applications > Accessories > Terminal
Рис. 34. Терминал Linux Ubuntu
2. Для работы в терминале Ubuntu требуются права пользователя root, но, к сожалению,
по умолчанию, он недоступен, поэтому для выполнения некоторых (не всех) команд
надо писать sudo <команда>, и подтверждать свои права вводом пароля. И не
пугайтесь того, что его не видно в терминале! Наберите точно по памяти, по
окончании ввода нажмите Enter.
3. Для получении справки о дополнительных возможностях некоторых программ
следует набрать <команда> --help
4. Потренируйтесь в выполнении команд:
 date
 oclock
 finger
 hwclock
 uname
 history
 clear
 ls
Найдите данные команды в таблице 2, опишите их. После выполнения результат
внесите в отчет.
5. Создайте нового пользователя, при помощи терминала Ubuntu, и введите его в группу
admin. Создайте пароль пользователю. Войдите под ним в систему. Процесс создания
и ввода в группу внесите в отчет.
6. Разберите выполнение незадействованных команд таблицы 2. Потренируйтесь в
выполнении, определите их назначение и область применения. Результат работы
внесите в отчет.
7. Подготовьте отчет о выполнении лабораторной работы и сдайте преподавателю в
соответствии с графиком.
Контрольные вопросы:
1. Что такое терминал?
21
2. Перечислите основные системные каталоги.
3. Расскажите о типах файлов в ОС Linux.
Литература 1,4
22
Лабораторная работа №6.Работа с файловой системой ОС Linux
Цель работы: Приобрести опыт работы с файлами и каталогами в ОС Linux, настройки
прав на доступ к файлам и каталогам.
План проведения занятия:
Ознакомиться с краткими теоретическими сведениями.
Приобрести навыки работы в терминале Linux.
Научиться создавать новые файлы и каталоги, разобрать назначение прав доступа к
файлам и папкам.
Подготовить отчет для преподавателя о выполнении лабораторной работы и
представить его в соответствии с графиком.
Оборудование:
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: операционная система Linux Ubuntu, текстовый процессор Microsoft
Word.
Краткие теоретические сведения
Файловая система - это структура, с помощью которой ядро операционной системы
предоставляет пользователям (и процессам) ресурсы долговременной памяти системы, т. е.
памяти на различного вида долговременных носителях информации - жестких дисках,
магнитных лентах, CD-ROM и т. п.
С точки зрения пользователя, файловая система — это логическая структура
каталогов и файлов. В отличие от Windows, где каждый логический диск хранит отдельное
дерево каталогов, во всех UNIX-подобных системах эта древовидная структура растет из
одного корня: она начинается с корневого каталога, родительского по отношению ко всем
остальным, а физические файловые системы разного типа, находящиеся на разных разделах и
даже на удаленных машинах, представляются как ветви этого дерева.
Имена файлов и каталогов могут иметь длину до 255 символов. Символы «/» (слэш)
и символ с кодом 0 запрещены. Кроме того, ряд символов имеет специальное значение для
командного интерпретатора, и их использование не рекомендуется. Это символы:
~ ! @ # $ & % * ( ) [ ] { } ' " \ : ; > < пробел
Заметьте, что точки среди специальных символов нет, и имена вроде
this.is.a.text.file.containing.the.famous.string.hello.world
допустимы
и
широко
распространены. Часто последняя отделенная точкой часть имени используется подобно
«расширению имени» в Windows, обозначая файл определенного типа, но это обозначение
несет смысл только для человека. Так, человеку имя файла ivan‗home‗tar.gz подсказывает,
что это домашний каталог пользователя ivan, упакованный архиватором tar и сжатый
компрессором gzip.
Если имя файла начинается с точки, то этот файл считается скрытым: некоторые
команды его «не видят». Например, введя в своем домашнем каталоге команду просмотра
содержимого каталога ls с ключом -а, означающим «показывать скрытые файлы», вы увидите
больше файлов, чем введя ту же команду без ключей.
Linux различает регистр символов в именах файлов: так, в одном каталоге могут
находиться два разных файла README и Readme.
Имена каталогов строятся по точно тем же правилам, что и имена файлов.
Полным именем файла (или путем к файлу) называется список вложенных друг в друга
каталогов, заканчивающийся собственно именем файла. Начинаться он может с любого
каталога, потому что в древовидной структуре между любыми двумя узлами существует
23
путь. Если этот список начинается с корневого каталога, то путь называется абсолютным.
Если с любого другого — то относительным (по отношению к этому каталогу).
Корневой каталог обозначается символом «/» (слэш), и этим же символом
разделяются имена каталогов в списке. Таким образом, абсолютным именем файла README
в домашнем каталоге пользователя ivanov будет /home/petrov/README.
В каждом каталоге существуют два особых «подкаталога» с именами «две
точки» и «точка». Первый из них служит указанием на однозначно определенный
родительский каталог, а второй — на сам данный каталог. Для корневого каталога, у
которого нет родителя, оба эти «подкаталога» указывают на корневой каталог. С помощью
этих имен образуются относительные имена файлов. Так, именем вышеупомянутого файла
README относительно домашнего каталога /home/ivanov пользователя ivan будет
../petrov/README.
Жесткая ссылка является просто другим именем для исходного файла. После создания
такой ссылки ее невозможно отличить от исходного имени файла.
«Настоящего» имени у файла нет, точнее, все такие имена будут настоящими. Команда ls
показывает количество именно таких жестких ссылок. Удаление файла по любому из его
имен уменьшает на единицу количество ссылок, и окончательно файл будет удален только
тогда, когда это количество станет равным нулю. Поэтому удобно использовать жесткие
ссылки для того, чтобы предотвратить случайное удаление важного файла.
Создадим жесткую ссылку на файл README и посмотрим, что изменилось в его
свойствах:
$ln /home/ivanov/README /home/ivanov/readme‗too
$ls -1 /home/ivanov/README
-rwxr-xr-- 2 ivanov
users
0 Feb 14 19:08 /home/ivanov/README
Жесткую ссылку можно создавать в любом каталоге, но обязательно на том же
физическом носителе (то есть в той же файловой системе), что и исходный файл. О причине
этого будет сказано позже.
Другой тип ссылок представляют собой символические ссылки. По назначению они
аналогичны ярлыкам в ОС Windows: указывают на файл, расположенный где угодно
(например, на съемном носителе), и после удаления такого файла или размонтирования
съемного носителя становятся бесполезны.
Символическая ссылка создается той же командой ln с ключом -s:
$ln -s /home/ivanov/README /home/ivanov/do.not.readme
$ls -1 /home/ivanov/do.not.readme
lrwxrwxrwx 1 ivanov users 16 Feb 14 19:17 /home/ivanov/do.not.
readme -> /home/ivanov/README
В поле имени файла после стрелки указано его настоящее имя. Права доступа у
всех символических ссылок одинаковы и не значат ничего: возможность доступа к файлу
определяется правами исходного файла. Заметьте, что в отличие от файла- оригинала файлссылка имеет ненулевую длину: в нем хранится абсолютное имя исходного файла.
Попытайтесь вывести файл-ссылку на экран с помощью команды cat, и вы увидите
содержание исходного, пустого, файла:
$ cat /home/ivanov/do.not.readme
$
Значение самой ссылки, то есть имя файла, на который она ссылается, можно узнать
с помощью команды readlink.
Права доступа к файлам и каталогам
Поскольку Linux - система многопользовательская, вопрос об организации
разграничения доступа к файлам и каталогам является одним из существенных вопросов,
которые должна решать операционная система. Механизмы разграничения доступа,
разработанные для системы UNIX в 70-х годах (возможно, впрочем, они предлагались кем-
24
то и раньше), очень просты, но они оказались настолько эффективными, что
просуществовали уже более 30 лет и по сей день успешно выполняют стоящие перед ними
задачи.
В основе механизмов разграничения доступа лежат имена пользователей и имена
групп пользователей. Вы уже знаете, что в Linux каждый пользователь имеет уникальное
имя, под которым он входит в систему (логируется). Кроме того, в системе создается
некоторое число групп пользователей, причем каждый пользователь может быть включен в
одну или несколько групп. Создает и удаляет группы суперпользователь, он же может
изменять состав участников той или иной группы. Члены разных групп могут иметь разные
права по доступу к файлам, например, группа администраторов может иметь больше прав,
чем группа программистов.
В индексном дескрипторе каждого файла записаны имя так называемого владельца
файла и группы, которая имеет права на этот файл. Первоначально, при создании файла его
владельцем объявляется тот пользователь, который этот файл создал. Точнее - тот
пользователь, от чьего имени запущен процесс, создающий файл. Группа тоже назначается
при создании файла - по идентификатору группы процесса, создающего файл. Владельца и
группу файла можно поменять в ходе дальнейшей работы с помощью команд chown и chgrp
(подробнее о них будет сказано чуть позже).
Теперь давайте еще раз выполним команду ls -l. Но зададим ей в качестве
дополнительного параметра имя конкретного файла, например, файла, задающего саму
команду ls. (Обратите, кстати, внимание на эту возможность команды ls -l - получить
информацию о конкретном файле, а не о всех файлах каталога сразу):
[user]$ ls -l /bin/ls
-rwxr-xr-x 1 root root 49940 Sep 12 1999 /bin/ls
Вы видите, что в данном случае владельцем файла является пользователь root и группа
root. Но нас сейчас в выводе этой команды больше интересует первое поле, определяющее
тип файла и права доступа к файлу. Это поле в приведенном примере представлено цепочкой
символов -rwxr-xr-x. Эти символы можно условно разделить на 4 группы.
Первая группа, состоящая из единственного символа, определяет тип файла. Этот
символ в соответствии с возможными типами файлов, рассмотренными в предыдущем
разделе, может принимать такие значения:

- = - обычный файл;

d = - каталог;

b = - файл блочного устройства;

c = - файл символьного устройства;

s = - доменное гнездо (socket);

p = - именованный канал (pipe);

l = - символическая ссылка (link).
Далее следуют три группы по три символа, которые и определяют права доступа к
файлу соответственно для владельца файла, для группы пользователей, которая сопоставлена
данному файлу, и для всех остальных пользователей системы. В нашем примере права
доступа для владельца определены как rwx, что означает, что владелец (root)имеет право
читать файл (r), производить запись в этот файл (w), и запускать файл на выполнение (x).
Замена любого из этих символов прочерком будет означать, что пользователь лишается
соответствующего права. В том же примере мы видим, что все остальные пользователи
(включая и тех, которые вошли в группу root) лишены права записи в этот файл, т. е. не могут
файл редактировать и вообще как-то изменять.
Вообще говоря, права доступа и информация о типе файла в UNIX-системах хранятся
в индексных дескрипторах в отдельной структуре, состоящей из двух байтов, т. е. из 16 бит
(это естественно, ведь компьютер оперирует битами, а не символами r, w, x). Четыре бита из
этих 16-ти отведены для кодированной записи о типе файла. Следующие
25
три бита задают особые свойства исполняемых файлов, о которых мы скажем чуть позже. И,
наконец, оставшиеся 9 бит определяют права доступа к файлу. Эти 9 бит разделяются на 3
группы по три бита. Первые три бита задают права пользователя, следующие три бита - права
группы, последние 3 бита определяют права всех остальных пользователей (т. е. всех
пользователей, за исключением владельца файла и группы файла).
При этом, если соответствующий бит имеет значение 1, то право предоставляется, а
если он равен 0, то право не предоставляется. В символьной форме записи прав единица
заменяется соответствующим символом (r, w или x), а 0 представляется прочерком.
Право на чтение (r) файла означает, что пользователь может просматривать
содержимое файла с помощью различных команд просмотра, например, командой more или
с помощью любого текстового редактора. Но, подредактировав содержимое файла в
текстовом редакторе, вы не сможете сохранить изменения в файле на диске, если не имеете
права на запись (w) в этот файл. Право на выполнение (x) означает, что вы можете загрузить
файл в память и попытаться запустить его на выполнение как исполняемую программу.
Конечно, если в действительности файл не является программой (или скриптом shell), то
запустить этот файл на выполнение не удастся, но, с другой стороны, даже если файл
действительно является программой, но право на выполнение для него не установлено, то
он тоже не запустится.
Вот мы и узнали, какие файлы в Linux являются исполняемыми! Как видите,
расширение имени файла тут не при чем, все определяется установкой атрибута
"исполняемый", причем право на исполнение может быть предоставлено не всем!
Если выполнить ту же команду ls -l, но в качестве последнего аргумента ей указать
не имя файла, а имя каталога, мы увидим, что для каталогов тоже определены права доступа,
причем они задаются теми же самыми символами rwx. Например, выполнив команду ls -l
/, мы увидим, что каталогу bin соответствует строка:
drwxr-xr-x 2 root root 2048 Jun 21 21:11 bin
Естественно, что по отношению к каталогам трактовка понятий "право на чтение",
"право на запись" и "право на выполнение" несколько изменяется. Право на чтение по
отношению к каталогам легко понять, если вспомнить, что каталог - это просто файл,
содержащий список файлов в данном каталоге. Следовательно, если вы имеете право на
чтение каталога, то вы можете просматривать его содержимое (этот самый список файлов в
каталоге). Право на запись тоже понятно - имея такое право, вы сможете создавать иудалять
файлы в этом каталоге, т. е. просто добавлять в каталог или удалять из него запись,
содержащую имя какого-то файла и соответствующие ссылки. Право на выполнение
интуитивно менее понятно. Оно в данном случае означает право переходить в этот каталог.
Если вы, как владелец, хотите дать доступ другим пользователям на просмотр какого-то
файла в своем каталоге, вы должны дать им право доступа в каталог, т. е. дать им "право на
выполнение каталога". Более того, надо дать пользователю право на выполнение для всех
каталогов, стоящих в дереве выше данного каталога. Поэтому в принципе для всех каталогов
по умолчанию устанавливается право на выполнение как для владельца и группы, так и для
всех остальных пользователей. И, уж если вы хотите закрыть доступ в каталог, то лишите
всех пользователей (включая группу) права входить в этот каталог. Только не лишайте и себя
такого права, а то придется обращаться к суперпользователю!3)
После прочтения предыдущего абзаца может показаться, что право на чтение каталога
не дает ничего нового по сравнению с правом на выполнение. Однако разница в этих правах
все же есть. Если задать только право на выполнение, вы сможете войти в каталог, но не
увидите там ни одного файла (этот эффект особенно наглядно проявляется в том случае, если
вы пользуетесь каким-то файловым менеджером, например, программой Midnight
Commander). Если вы имеете право доступа в каком-то из подкаталогов этого каталога, то вы
можете перейти в него (командой cd), но, как говорится "вслепую", по памяти, потому что
списка файлов и подкаталогов текущего каталога вы не увидите.
Алгоритм проверки прав пользователя при обращении к файлу можно описать
26
следующим образом. Система вначале проверяет, совпадает ли имя пользователя с именем
владельца файла. Если эти имена совпадают (т. е. владелец обращается к своему файлу), то
проверяется, имеет ли владелец соответствующее право доступа: на чтение, на запись или на
выполнение (не удивляйтесь, суперпользователь может лишить некоторых прав и владельца
файла). Если право такое есть, то соответствующая операция разрешается. Если же нужного
права владелец не имеет, то проверка прав, предоставляемых через группу или через группу
атрибутов доступа для остальных пользователей, уже даже не проверяются, а пользователю
выдается сообщение о невозможности выполнения затребованного действия (обычно что-то
вроде "Permission denied").
Если имя пользователя, обращающегося к файлу, не совпадает с именем владельца, то
система проверяет, принадлежит ли владелец к группе, которая сопоставлена данному файлу
(далее будем просто называть ее группой файла). Если принадлежит, то для определения
возможности доступа к файлу используются атрибуты, относящиеся к группе, а на атрибуты
для владельца и всех остальных пользователей внимания не обращается. Если же
пользователь не является владельцем файла и не входит в группу файла, то его права
определяются атрибутами для остальных пользователей. Таким образом, третья группа
атрибутов, определяющих права доступа к файлу, относится ко всем пользователям, кроме
владельца файла и пользователей, входящих в группу файла.
Для изменения прав доступа к файлу используется команда chmod. Ее можно
использовать в двух вариантах. В первом варианте вы должны явно указать, кому какое право
даете или кого этого права лишаете:
[user]$ chmod wXp имя-файла
где вместо символа w подставляется

либо символ u (т. е. пользователь, который является владельцем);

либо g (группа);

либо o (все пользователи, не входящие в группу, которой принадлежит
данный файл);

либо a (все пользователи системы, т. е. и владелец, и группа, и все остальные).
Вместо X ставится:

либо + (предоставляем право);

либо - (лишаем соответствующего права);

либо = (установить указанные права вместо имеющихся).
Вместо p - символ, обозначающий соответствующее право:

r (чтение);

w (запись);

x (выполнение).
Вот несколько примеров использования команды chmod:
[user]$ chmod a+x file_name
предоставляет всем пользователям системы право на выполнение данного файла.
[user]$ chmod go-rw file_name
удаляет право на чтение и запись для всех, кроме владельца файла.
[user]$ chmod ugo+rwx file_name
дает всем права на чтение, запись и выполнение.
Если опустить указание на то, кому предоставляется данное право, то
подразумевается, что речь идет вообще обо всех пользователях, т. е. вместо [user]$
chmod a+x file_name
можно записать просто
[user]$ chmod +x file_name
Второй вариант задания команды chmod (он используется чаще) основан на цифровом
представлении прав. Для этого мы кодируем символ r цифрой 4, символ w - цифрой 2, а
символ x - цифрой 1. Для того, чтобы предоставить пользователям какой-то
27
набор прав, надо сложить соответствующие цифры. Получив, таким образом, нужные
цифровые значения для владельца файла, для группы файла и для всех остальных
пользователей, задаем эти три цифры в качестве аргумента команды chmod (ставим эти
цифры после имени команды перед вторым аргументом, который задает имя файла).
Например, если надо дать все права владельцу (4+2+1=7), право на чтение и запись - группе
(4+2=6), и не давать никаких прав остальным, то следует дать такую команду:
[user]$ chmod 760 file_name
Цифры после имени команды в этой форме ее представления есть не что иное, как
восьмеричная запись тех самых 9 бит, которые задают права для владельца файла, группы
файла и для всех пользователей.
Выполнять смену прав доступа к файлу с помощью команды chmod может только
сам владелец файла или суперпользователь. Для того, чтобы иметь возможность изменить
права группы, владелец должен дополнительно быть членом той группы, которой он хочет
дать права на данный файл.
Чтобы завершить рассказ о правах доступа к файлам, надо рассказать еще о трех
возможных атрибутах файла, устанавливаемых с помощью той же команды chmod. Это те
самые атрибуты для исполняемых файлов, которые в индексном дескрипторе файла в
двухбайтовой структуре, определяющей права на файл, занимают позиции 5-7, сразу после
кода типа файла.
Первый из этих атрибутов - так называемый "бит смены идентификатора
пользователя". Смысл этого бита состоит в следующем.
Обычно, когда пользователь запускает некоторую программу на выполнение, эта
программа получает те же права доступа к файлам и каталогам, которые имеет пользователь,
запустивший программу. Если же установлен "бит смены идентификатора пользователя", то
программа получит права доступа к файлам и каталогам, которые имеет владелец файла
программы (таким образом, рассматриваемый атрибут лучше называть "битом смены
идентификатора владельца"). Это позволяет решать некоторые задачи, которые иначе было
бы трудно выполнить. Самый характерный пример - команда смены пароля passwd. Все
пароли пользователей хранятся в файле /etc/passwd, владельцем которого является
суперпользователь root. Поэтому программы, запущенные обычными пользователями, в том
числе команда passwd, не могут производить запись в этот файл. А, значит, пользователь как
бы не может менять свой собственный пароль. Но для файла
/usr/bin/passwd установлен "бит смены идентификатора владельца", каковым является
пользователь root. Следовательно, программа смены пароля passwd запускается с правами
root и получает право записи в файл /etc/passwd (уже средствами самой программы
обеспечивается то, что пользователь может изменить только одну строку в этом файле).
Установить "бит смены идентификатора владельца" может суперпользователь с
помощью команды
[root]# chmod +s file_name
Аналогичным образом работает "бит смены идентификатора группы".
Еще один возможный атрибут исполняемого файла - это "бит сохранения задачи"
или "sticky bit" (дословно - "бит прилипчивости"). Этот бит указывает системе, что после
завершения программы надо сохранить ее в оперативной памяти. Удобно включить этот
бит для задач, которые часто вызываются на выполнение, так как в этом случае экономится
время на загрузку программы при каждом новом запуске. Этот атрибут был необходим на
старых моделях компьютеров. На современных быстродействующих системах он
используется редко.
Если используется цифровой вариант задания атрибутов в команде chmod, то
цифровое значение этих атрибутов должно предшествовать цифрам, задающим права
пользователя:
[root]# chmod 4775 file_name
При этом веса этих битов для получения нужного суммарного результата задаются
28
следующим образом:

4 - "бит смены идентификатора пользователя",

2 - "бит смены идентификатора группы",

1 - "бит сохранения задачи (sticky bit)".
Если какие-то из этих трех битов установлены в 1, то несколько изменяется вывод
команды ls -l в части отображения установленных атрибутов прав доступа. Если установлен
в 1 "бит смены идентификатора пользователя", то символ "x" в группе, определяющейправа
владельца файла, заменяется символом "s". Причем, если владелец имеет право на
выполнение файла, то символ "x" заменяется на маленькое "s", а если владелец не имеет права
на выполнение файла (например, файл вообще не исполняемый), то вместо "x" ставится "S".
Аналогичные замены имеют место при задании "бита смены идентификатора группы", но
заменяется символ "x" в группе атрибутов, задающих права группы. Если равен
1 "бит сохранения задачи (sticky bit)", то заменяется символ "x" в группе атрибутов,
определяющей права для всех остальных пользователей, причем "x" заменяется символом
"t", если все пользователи могут запускать файл на выполнение, и символом "T", если они
такого права не имеют.
Таким образом, хотя в выводе команды ls -l не предусмотрено отдельных позиций для
отображения значений битов смены идентификаторов и бита сохранения задачи,
соответствующая информация выводится. Вот небольшой пример того, как это будет
выглядеть:
[root]# ls -l prim1
-rwSrwsrwT 1 kos root 12 Dec 18 23:17 prim1
Команды для работы с файлами и каталогами
В предыдущих разделах и работах уже упоминали некоторые команды для работы с
файлами и каталогами: pwd (имя текущего каталога), cd, ls, ln, chmod. В этом разделе
рассмотрим еще несколько часто используемых команд.
Команды chown и chgrp
Эти команды служат для смены владельца файла и группы файла. Выполнять смену
владельца может только суперпользователь, смену группы может выполнить сам владелец
файла или суперпользователь. Для того, чтобы иметь право сменить группу, владелец должен
дополнительно быть членом той группы, которой он хочет дать права на данный файл.
Формат этих двух команд аналогичен:
[root]# chown vasja имя-файла
[root]# chgrp usersgrp имя-файла
Команда mkdir
Команда mkdir позволяет создать подкаталог в текущем каталоге. В качестве
аргумента этой команде надо дать имя создаваемого каталога. Во вновь созданном каталоге
автоматически создаются две записи: . (ссылка на этот самый каталог) и .. (ссылка на
родительский каталог). Чтобы создать подкаталог, вы должны иметь в текущем каталоге
право записи. Можно создать подкаталог не в текущем, а в каком-то другом каталоге, но
тогда необходимо указать путь к создаваемому каталогу:
[user]$ mkdir /home/kos/book/glava5/part1
Команда mkdir может использоваться со следующими опциями:
 -m mode - задает режим доступа для нового каталога (например, -m 755);
 -p - создавать указанные промежуточные каталоги (если они не существуют).
Команда touch
Создать пустой файл можно командой touch <имя_файла>. Вообще-то она
предназначена для того, чтобы для всех заинтересованных программ (например, утилиты
сборки проекта make) файл выглядел новее, чем на самом деле: она меняет время последнего
изменения файла на текущее время. Но если файла с таким именем не существует, то она его
создаст.
Команда cat
29
Команда cat часто используется для создания файлов (хотя можно воспользоваться и
командой touch). По команде cat на стандартный вывод (т. е. на экран) выводится содержимое
указанного файла (или нескольких файлов, если их имена последовательно задать в качестве
аргументов команды). Если вывод команды cat перенаправить в файл, то можно получить
копию какого-то файла:
[user]$ cat file1 > file2
Собственно, первоначальное предназначение команды cat как раз и предполагало
перенаправление вывода, так как эта команда создана для конкатенации, т. е. объединения
нескольких файлов в один:
[user]$ cat file1 file2 ... fileN > new-file
Именно возможности перенаправления ввода и вывода этой команды ииспользуются
для создания новых файлов. Для этого на вход команды cat направляют данные со
стандартного ввода (т. е. с клавиатуры), а вывод команды - в новый файл:
[user]$ cat > newfile
После того, как вы напечатаете все, что хотите, нажмите комбинацию клавиш
<Ctrl>+<D> или <Ctrl>+<C>, и все, что вы ввели, будет записано в newfile. Конечно, таким
образом создаются, в основном, короткие текстовые файлы.
Команда mv
Если вам необходимо не скопировать, а переместить файл из одного каталога в
другой, вы можете воспользоваться командой mv. Синтаксис этой команды аналогичен
синтаксису команды cp. Более того, она сначала копирует файл (или каталог), а только потом
удаляет исходный файл (каталог). И опции у нее такие же, как у cp.4)
Команда mv может использоваться не только для перемещения, но и для
переименования файлов и каталогов (т. е. перемещения их внутри одного каталога). Для
этого надо просто задать в качестве аргументов старое и новое имя файла:
[user]$ mv oldname newname
Но учтите, что команда mv не позволяет переименовать сразу несколько файлов
(используя шаблон имени), так что команда mv *.xxx *.yyy не будет работать.
При использовании команды mv, также как и при использовании cp, не забывайте
применять опцию -i для того, чтобы получить предупреждение, когда файл будет
перезаписываться.
Команды rm и rmdir
Для удаления ненужных файлов и каталогов в Linux служат команды rm (удаляет
файлы) и rmdir (удаляет пустой каталог). Для того, чтобы воспользовался этими командами,
вы должны иметь право записи в каталоге, в котором расположены удаляемые файлы или
каталоги. При этом полномочия на изменение самих файлов не обязательны. Если хотите
перед удалением файла получить дополнительный запрос на подтверждение операции,
используйте опцию -i.
Если вы попытаетесь использовать команду rm (без всяких опций) для удаления
каталога, то будет выдано сообщение, что это каталог, и удаления не произойдет. Для
удаления каталога надо удалить в нем все файлы, после чего удалить сам каталог с помощью
команды rmdir. Однако можно удалить и непустой каталог со всеми входящими в него
подкаталогами и файлами, если использовать команду rm с опцией -r.
Если вы дадите команду rm *, то удалите все файлы в текущем каталоге. Подкаталоги
при этом не удалятся. Для удаления как файлов, так и подкаталогов текущего каталога надо
тоже воспользоваться опцией -r. Однако всегда помните, что в Linux нет команды
восстановления файлов после их удаления (даже если вы спохватились сразу же после
ошибочного удаления файла или каталога)!
Так что дважды подумайте до удаления чего-либо и не пренебрегайте опцией -i.
Команды more и less
Команда cat позволяет вывести на стандартный вывод (на экран) содержимое любого
файла, однако она используется для этих целей очень редко, разве что для вывода очень
30
небольших по объему файлов. Дело в том, что содержимое большого файла мгновенно
проскакивает на экране, и пользователь видит только последние строки файла. Поэтому cat
используется в основном по ее прямому назначению - для конкатенации файлов, а для
просмотра содержимого файлов (конечно, текстовых) используются команды more и less
(или текстовые редакторы).
Команда-фильтр more выводит содержимое файла на экран отдельными страницами,
размером как раз в целый экран. Для того, чтобы увидеть следующую страницу, надонажать
на клавишу пробела. Нажатие на клавишу <Enter> приводит к смещению на одну строку.
Кроме клавиш пробела и <Enter> в режиме паузы еще некоторые клавиши действуют как
управляющие (например, клавиша <B> возвращает вас на один экран назад), но мы здесь не
будем приводить полного их перечня, как и перечня опций команды. Вамдля начала надо
еще только запомнить, что выйти из режима просмотра можно с помощью клавиши <Q>, так
как если вы этого не знаете, то вам придется долго и нудно нажимать пробел, пока вы не
доберетесь до конца длинного файла. Обо всех опциях команды more выможете прочитать в
интерактивном руководстве man или info.
Утилита less, разработанная в рамках проекта GNU, содержит все функции и команды
управления выводом, имеющиеся в программе more, и некоторые дополнительные,
например, позволяет использовать клавиши управления курсором (<Стрелка вверх>,
<Стрелка вниз>, <PgUp>, <PgDown>) для перемещения по тексту. Вспомните, мы уже
говорили об этом, когда рассматривали интерактивную подсказку man.
Команды more и less позволяют производить поиск подстроки в просматриваемом
файле, причем команда less позволяет производить поиск как в прямом, так и в обратном
направлении. Для организации поиска строки символов string надо набрать в командной
строке программы в нижней части экрана (там, где двоеточие) /string. Если искомая строка
будет найдена, будет отображен соответствующий кусок текста, причем найденная строка
будет находиться в самом верху экрана.
Команда find и символы шаблонов для имен файлов
Еще одной часто используемой командой для работы с файлами в Linux является
команда поиска нужного файла find. Команда find может искать файлы по имени, размеру,
дате создания или модификации и некоторым другим критериям.
Общий синтаксис команды find имеет следующий вид:
find [список_каталогов] критерий_поиска
Параметр "список_каталогов" определяет, где искать нужный файл. Проще всего
задать в качестве начального каталога поиска корневой каталог /, однако, в таком случае
поиск может затянуться очень надолго, так как будет просматриваться вся структура
каталогов, включая смонтированные файловые системы (в том числе сетевые, если таковые
есть). Можно сократить объем поиска, если задать вместо одного корневого каталога список
из нескольких каталогов (естественно, тех, в которых может находиться искомый файл):
[user]$ find /usr/share/doc /usr/doc /usr/locale/doc -name
instr.txt
Началом "критерия_поиска", определяющего, что именно должна искать программа
find, считается первый аргумент, начинающийся на "-", "(", ")"', "," или "!". Все аргументы,
предшествующие "критерию_поиска", трактуются как имена каталогов, в которых надо
производить поиск. Если не указано ни одного пути, поиск производится только в текущем
каталоге и его подкаталогах.
Чаще всего поиск проводится по именам файлов, как это показано в предыдущем
примере, т. е. "критерий_поиска" задается как "-name имя_файла". Вместо опции -name
можно использовать опцию -path, тогда команда будет искать совпадения в полном имени
файла, с указанием пути. Например, команда
[user]$ find . -path './sr*sc'
найдет в текущем каталоге подкаталог './src/misc'. Вместо полного имени файла или
31
каталога в этом примере использован так называемый "шаблон имени". Поскольку шаблоны
имен файлов могут использоваться не только с командой find, но и со многими другими
командами (включая уже рассмотренные команды chmod, chown, chgrp, cp, rm, cat, mv), то
правилам составления шаблонов стоит уделить некоторое внимание.
Чаще всего шаблоны имен файлов строятся с помощью специальных символов "*" и
"?". Значок "*" используется для замены произвольной строки символов. В Linux

"*" - соответствует всем файлам, за исключением скрытых;

".*" - соответствует всем скрытым файлам (но также текущему каталогу "." и
каталогу уровнем выше "..": не забывайте об этом!);

"*.*" - соответствует только тем файлам и каталогам, которые имеют "." в
середине имени, или оканчиваются на точку;

"p*r" - соответствует и "peter" и "piper";

"*c*" - соответствует и "picked" и "peck".
Значок ? заменяет один произвольный символ, поэтому index?.htm будет
соответствовать именам index0.htm, index5.htm и indexa.htm.
Кроме "*" и "?" в Linux при задании шаблонов имен можно использовать квадратные
скобки [], в которых дается либо список возможных символов, либо интервал, в который
должны попадать возможные символы. Например, [abc]* соответствует всем именам файлов,
начинающимся с a, b, c; *[I-N1-3] соответствует файлам, имена которыхоканчиваются на I,
J, K, L, M, N, 1, 2, 3.
А теперь вернемся к команде find и расскажем подробнее о том, какие критерии
поиска возможны. Несколько примеров простых критериев поиска перечислены в табл. 4.4.
Таблица 4.4. Критерии поиска для команды find
Опция
Значение
-name шаблон
Ищет файлы, имена которых соответствуют шаблону
-group имя
Ищет файлы, принадлежащие указанной группе
-size число[c]
Ищет файлы, размером в число 512-байтных блоков. Если после числа
стоит символ c, значит размер указан в байтах (символах)
-mtime число
Ищет файлы, которые в последний раз изменялись указанное число дней
назад
-newer образец Ищет файлы, которые изменялись после изменения файла, указанного в
образце
-type тип_файла Ищет файлы указанного типа. Тип задается одним из символов b (блокориентированные устройства), c (байт-ориентированные устройства), d
(файл каталога), f (обычный файл), p (именованный канал) либо l
(символическая ссылка)
Другие простые критерии вы можете узнать, если просмотрите man-страницу о
команде find. Здесь же надо только сказать, что из простых критериев можно строить более
сложные с помощью логических операций and, or или операции отрицания, знаком которой
служит восклицательный знак. Например, если вы хотите найти все файлы, имена которых
оканчиваются на .txt и .doc, то критерий можно записать как (-name *.txt -or -name *.doc).
Можно комбинировать таким образом любое число критериев (и не только простых!). Если
операция не указана явно, то подразумевается -and, т. е. вместо (-name *.txt -and -name
*.doc) можно записать просто (-name *.txt -name *.doc). Если применяется только одна
операция -and или !, то скобки обычно можно опустить, а с операцией -or и в сложных
выражениях скобки необходимы. Перед скобкой нужно поставить обратную косую черту, а
после скобки - пробел. Например, если вы хотите найти каталог по его имени, то можно
сделать это командой
[user]$ find /usr -name doc -type d
или (с соблюдением правил построения сложных критериев)
32
[user]$ find /usr \( -name doc -and -type d \)
В следующем примере мы ищем файлы по такому критерию: либо имя файла
оканчивается на .tmp, либо размер файла больше 100 Кбайт.
[user]$ find /home/kos \( \( -name *.tmp \) -or \( -size +200
\) \)
В последнем примере стоит обратить внимание на то, что перед значением размера
стоит знак "+". Такой знак можно использовать с любым числовым параметром в критериях
поиска команды find. Он означает, что нужно искать файлы, у которых значение параметра
больше заданного. Соответственно, знак "-" означает, что надо искать файлы, у которых
значение параметра меньше заданного. Если знаки + или - отсутствует, ищутся файлы, у
которых значение параметра равно заданному.
Чтобы закончить рассмотрение команды find, надо сказать еще о том, что после
критерия поиска в этой команде можно сразу же задать операцию, которая будет
применяться ко всем файлам, найденным по указанному критерию. Простейшим примером
использования такой возможности является указание команды -print.
[user]$ find /home/kos -name *.tmp -print
По которой выдается на экран список имен всех найденных файлов с указанием
полного пути к файлу. Эта операция применяется по умолчанию, т. е. когда никаких
операций вообще не указано (как это было во всех приведенных выше примерах). Другим
примером операции, применяемой ко всем найденным файлам, может служить операция exec cmd {} \;, где cmd - произвольная команда оболочки shell. То есть в этом случае ко
всем найденным файлам (их именами заменяются поочередно фигурные скобки)
применяется команда cmd. За cmd {} в этом случае должна следовать точка с запятой,
экранированная обратной косой чертой.
Например, если вы хотите удалить в текущем каталоге все файлы, к которым
пользователи не обращались в течение 30 дней, дайте команду:
[root]# find . -type f -atime +30 -exec rm {} \;
Вместо -exec можно поставить -ok, тогда перед выполнением указанной команды
cmd применительно к каждому файлу будет запрашиваться подтверждение.
В общем, команда find является очень мощным, полезным и чрезвычайно
адаптируемым инструментом поиска в файловой системе. Все ее возможности здесь не
перечислены, изучайте соответствующую man-страницу. И будьте очень осторожны с
применением таких возможностей команды, как вызов других команд, применяемых ко всем
найденным файлам. Помните, что изменения часто необратимы!
Редактирование текстовых файлов
Мелкие правки конфигурационных файлов — обычное дело для администратора,
поэтому средство их внесения присутствовало в UNIX-системах всегда. Наиболее
распространенное такое средство, присутствующее в л.бой системе Linux – это консольный
полноэкранный редактор vi. Как полноэкранный редактор, vi может находиться в одном из
двух режимов. В режиме вставки вводимые символы поступают в редактируемый файл, в
командном режиме они воспринимаются как команды. Перечислим коротко самые
употребительные команды редактора vi:
РЕЖИМ ВСТАВКИ.
Включение режима вставки:
• i в текущей позиции курсора;
• I перед первым непробельным символом в текущей строке;
• w в новой строке, добавленной после текущей;
• W в новой строке, добавленной перед текущей.
Выключение режима вставки:
• <Esc>
Команды режима вставки:
33
• Ctrl+а повторить предыдущую вставку;
• Ctrl+у вставить символ, находящийся над курсором (в предыдущей строке);
• Ctrl+e вставить символ, находящийся под курсором (в следующей строке).
КОМАНДНЫЙ РЕЖИМ.
Удаление (здесь и далее N — это число):
• N х N символов под курсором и справа от него;
• N X N символов слева от курсора;
• N dd N строк;
• D до конца текущей строки;
• N D до конца текущей строки и еще N-1 строку.
Копирование и вставка строк:
• N уу взять в буфер N строк от текущей и ниже;
• р вставить содержимое буфера после текущей строки;
• Р вставить содержимое буфера перед текущей строкой.
Поиск и переход:
• N G перейти к строке с номером N;
• $ G перейти к последней строке файла;
• /< образец > искать образец вниз от курсора;
• ?< образец > искать образец вверх от курсора;
• п повторить поиск в том же направлении;
• N (буквально < N< ): повторить поиск
в обратном направлении.
Сохранение и выход:
• :w сохранить текущий файл;
• :w <имя> сохранить под новым именем, если файл <имя> еще не существует;
• :w! <имя> сохранить под новым именем, переписав существующий файл;
• :q выйти;
• :q! принудительно выйти без сохранения;
• :wq сохранить и выйти.
Разное полезное:
•Nu
отменить последние N изменений;
• N Ctrl+г
вернуть последние N отмененных изменений;
•U
отменить изменения в последней строке;
• N r < символ > заменить N следующих символов на < символ >;
•N>>
добавить отступ (Tab) в N следующих строк;
•N<<
удалить один отступ (Tab) из N следующих строк;
• :sh временно
выйти в оболочку (вернуться — exit);
• :!<команда> выполнить команду оболочки.
Работа с vi в простых случаях сводится к использованию следующего небольшого набора
команд:
vi <имя файла>
# открыли файл для просмотра или редактирования или создания
v
перешли в режим ввода ход в режим ввода текста (если требуется)
ESC
вышли из режима редактирования в режим команд
:
перешли из режима команд в режим командной строки
w
записали изменения (если требуется)
q –> Enter
вышли из редактора (если изменения уже записаны или их не было)
q! - > Enter
вышли из редактора без сохранения изменений (если требуется).
Порядок выполнения работы:
1. Запустить виртуальную машину с Linux Ubuntu.
2. Загрузиться пользователем root. Для его подключения достаточно войти под первым
зарегистрированным пользователем, и при помощи терминала поставить
34
пользователю root новый пароль. Процесс изменения пароля смотри в лабороторной
работе №5.
3. Ознакомиться со структурой системных каталогов ОС Linux на рабочем месте.
Привести в отчете перечень каталогов с указанием их назначения.
4. Просмотреть содержимое каталога файлов физических устройств. В отчете привести
перечень файлов физических устройств на рабочем месте с указанием назначения
файлов.
5. Перейти в директорий пользователя root. Просмотреть содержимое каталога.
Просмотреть содержимое файла vmlinuz. Просмотреть и пояснить права доступа к
файлу vmlinuz.
6. Создать в директории пользователя user три файла 1.txt, 2.txt и 3.txt, используя
команды touch, cat и редактор vi. Просмотреть и пояснить права доступа к файлам.
7. Перейти в директории пользователя root. В отчете описать результат.
8. Изменить права доступа на файл 1.txt в директории пользователя user.
9. Создать жесткую и символическую ссылки на файл 2.txt. Просмотреть результаты.
10. Создать каталог new в каталоге пользователя user.
11. Скопировать файл 1.txt в каталог new.
12. Переместить файл 2.txt в каталог new.
13. Изменить владельца файла 3.txt и каталога new.
14. Удалить файл 1.txt в каталоге new.
15. Удалить каталог new.
16. Найти, используя команду find, файл vga2iso (или другой файл по заданию
преподавателя).
Контрольные вопросы
1.
2.
3.
4.
Что такое файловая система?
Жесткая ссылка в Linux. Основные сведения.
Команда поиска в Linux. Основные сведения.
Перечислите основные команды работы с каталогами.
Литература 1,3,4
35
Лабораторная работа №7.Процессы в операционной системе Linux
Цель работы: Ознакомиться на практике с понятием процесса в операционной системе.
Приобрести опыт и навыки управления процессами в операционной системе Linux.
План проведения занятия
1. Используя теоретические сведения изучить порядок работы с текстовым редактором
Vi и создать два сценария для исследования процессов.
2. Следуя указаниям ознакомиться на практике с командами и сигналами для
управления процессами: запуском, остановкой, переводом на передний план,
удалением процесса и др.
3. Составить отчет.
Краткие теоретические сведения
1. Устройство Linux: ядро и процессы
Главная, постоянно находящаяся в
оперативной памяти, часть ОС Linux
называется ядром (Kernel). Ядро ОС
обрабатывает прерывания от устройств,
выполняет запросы системных процессов и
пользовательских
приложений,
распределяет
виртуальную
память,
создает
и
уничтожает
процессы,
обеспечивает
многозадачность
посредством переключения между ними,
содержит
драйверы
устройств,
обслуживает файловую систему (см. рис.
34).
Пользовательские процессы
не
могут
непосредственно,
например,
порождать
другие
процессы,
производить чтение или запись на диск,
выводить данные на экран или создавать
гнездо (socket) для обмена по сети. Для
выполнения
этих
действий
они
должны
воспользоваться
сервисами ядра. Обращения за такими
услугами называются системными
вызовами.
Рис. 34. Устройство Linux
Начальная загрузка системы состоит в том, что файл с образом ядра счи-тывается
в оперативную память, начиная с нулевого адреса. Этот файл находится в каталоге /boot
и называется vmlinuz-x.y.z, где x.y.z — это номер версии ядра. На текущий момент
большинство дистрибутивов основано на ядре версии 2.4, хотя уже вышло ядро 2.6 и коегде еще встречается версия 2.2.
В UNIX-подобных системах в отличие от других ОС ядро минимизировано и не выполняет
ни одной функции, служащей непосредственно пользователю. Для этой
36
цели применяются многочисленные утилиты, выступающие в качестве посредников между
пользователем и ядром. Только в комплекте с ними ядро образует полноценную
операционную систему.
Ядро обслуживает запросы процессов. Что же такое процесс? Это понятиеявляется
базовым в UNIX-подобных системах. Процесс можно представить себе как виртуальную
машину, отданную в распоряжение одной задачи. Каждый процесс считает, что он на
машине один и может распоряжаться всеми ее ресурсами. На самом же деле процессы
надежно изолированы друг от друга, так что крушение одного не может повредить всей
системе
Каждый процесс выполняется в собственной виртуальной памяти, в которую никакой
другой процесс вмешаться не может. Этим и обеспечивается устойчивость всей системы.
Напомним, что такое виртуальная память. Каждому процессу разрешено считать, что
его адреса начинаются с нулевого адреса и далее наращиваются. Таким образом, в 32разрядной ОС процесс может адресовать 4 гигабайта оперативной памяти. Механизм
виртуальной памяти позволяет процессу считать, что именно столько ему и выделено, хотя
физически объем ОЗУ вашей машины может быть значительно меньше. Недостающую
память заменяет жесткий диск путем записи временно не используемых страниц памяти в
раздел подкачки (свопинга).
Разделяемость библиотек между процессами обеспечивается тем, что их код и
статические данные отображаются на один и тот же участок физической оперативной
памяти.
Таблица процессов
С точки зрения ядра процесс представляет собой запись в таблице процессов. Эта
запись содержит сведения о состоянии процесса и данные, существующие в течение всего
времени его жизни. Размер таблицы процессов позволяет запускать несколько сотен
процессов одновременно. Другая важная информация о процессе — например, таблица всех
открытых процессом файлов — хранится в его адресном пространстве. Запись в таблице
процессов и пространство процесса вместе составляют контекст, или окружение, процесса.
В него входят:
♦ PID — идентификатор процесса. Он принудительно назначается планировщиком при
запуске процесса.
♦ PPID — идентификатор родительского процесса.
♦ TTY — имя управляющего терминала - терминала, с которого запущен процесс.
♦ WD — текущий каталог процесса, от которого отсчитываются относительные пути.
♦ RID, RGID — реальные ID и групповой ID пользователя, запустившего процесс.
♦ EUID, EGID — эффективные ID и GID.
♦ NICE — показатель уступчивости. Процессы выполняются в режиме разделения
времени, то есть время центрального процессора делится между готовыми к
выполнению процессами с учетом их приоритета. Чем выше показатель
уступчивости, тем ниже приоритет.
♦ Переменные окружения.
Системные вызовы fork() и ехес() или как размножаются процессы
Каждый процесс порождается другим процессом, использующим для этого
системный вызов fork(). Таким образом, структура процессов, подобно файловой системе,
древовидна. Корнем этого дерева служит init — процесс инициализации системы (см. рис.
35). Он запускается ядром первым, получает идентификатор 1 и порождает еще несколько
процессов (сколько и каких, можно узнать из его конфигурационного файла
/etc/inittab), которые, в свою очередь, при участии пользователя порождают другие процессы.
В результате системного вызова fork() родительский процесс полностью копирует
свое окружение, включая адресное пространство, в дочерний, так что в момент
37
рождения дочерний процесс отличается только своим ID. Потом дочерний процесс с
помощью вызова ехec() загружает в свое адресное пространство какой-нибудь исполняемый
файл и начинает исполнять содержащуюся в нем программу.
Каждый процесс, завершившись, возвращает родительскому процессу какое-то
значение, называемое кодом завершения или кодом возврата. По соглашениюразработчиков,
нулевой код возврата означает успешное завершение, а ненулевые — разнообразные
ошибки. Процесс-родитель может приостановить свое выполнение до завершения потомка
и выполнить разные действия в зависимости от возвращенного дочерним процессом
значения, а может и не делать этого.
Рис. 35. Иерархия процессов.
Категории процессов
Процессы делятся на три категории:
♦ Системные. Они порождаются ядром особым образом в процессе загрузки и выполняют
системные функции (например, планирование процессов или смену страниц виртуальной
памяти). Выполняемая ими программа берется не из исполняемого файла, а является частью
ядра.
 Пользовательские. Как правило, они порождаются во время сеанса работы пользователя
и связаны с терминалом. Если пользовательский процесс работает в интерактивном
режиме, то он захватывает терминал в монопольное владение и, пока он не завершится,
пользователь не имеет доступа к командной строке на этом терминале.
Пользовательские процессы могут работать также в фоновом режиме, освободив
командную строку.
 Демоны (daemon, сокращение от Disk And Execution MONitor). Запускаются после
инициализации ядра. Выполняются в фоновом режиме, не связаны ни с одним
пользователем, обеспечивают работу различных служб (например, управление сетью).
Главным демоном считается init — процесс инициализации системы.
2. Сценарии в Linux. Активные и фоновые процессы
38
Исполняемые файлы в Linux бывают двух видов. Первый – это файлы в собственно
исполняемом (executable) формате. Как правило, такие файлы – результат компиляции
программ, написанных на одном из языков программирования. В Linux используется
несколько форматов исполняемых файлов, состоящих из машинных кодов и служебной
информации, необходимой операционной системе для запуска программы: согласно этой
информации, ядро Linux выделяет для запускаемой программы оперативную память,
загружает программу из файла и передает ей управление. Большинство утилит Linux –
программы именно такого, "двоичного" формата.
Второй вид исполняемых файлов – сценарии. Сценарий – это текстовый файл,
предназначенный для обработки какой-нибудь утилитой. Чаще всего такая утилита – это
интерпретатор некоторого языка программирования, а содержимое такого файла –программа
на этом языке.
Запустить сценарий на исполнение можно командой
sh имя_сценария
Для того чтобы запустить процесс сценария параллельно, достаточно добавить в конец
командной строки символ "&":
sh имя_сценария&
Процесс, запускаемый параллельно, называется фоновым (background). Фоновые
процессы не имеют возможности вводить данные с того же терминала, что и породивший
их shell (только из файла), зато выводить данные на этот терминал могут (правда, когда на
одном и том же терминале вперемежку появляются сообщения от нескольких фоновых
процессов, начинается неразбериха). При каждом терминале в каждый момент времени
может быть не больше одного активного (foreground) процесса, которому разрешено вводить
данные с этого терминала. На время, пока команда работает в активном режиме, породивший
ее командный интерпретатор "уходит в фон", и там, в фоне, выполняет свой wait().
Активный процесс, foreground process - процесс, имеющий возможность вводить
данные с терминала. В каждый момент у каждого терминала может быть не более одного
активного процесса.
Фоновый процесс, background process - процесс, не имеющий возможности вводить
данные с терминала. Пользователь может запустить любое, но не превосходящее заранее
заданного в системе, число фоновых процессов.
Сигналы в Linux
Механизм сигналов — это средство, позволяющее сообщать процессам о некоторых
событиях в системе, а процессу-получателю — должным образом на эти сообщения
реагировать. Послать сигнал может сам процесс (например, при попытке деления на ноль),
ядро (при сбое оборудования), пользователь или другой процесс (требуя прервать
выполнение задачи).
Всего в Linux 63 сигнала, обозначаемых своими номерами или символическими именами.
Имена всех сигналов начинаются с SIG, и эту приставку часто опускают: так, сигнал,
требующий прекратить выполнение процесса, называется SIGKILL, или KILL, или сигнал 9.
Получив сигнал, процесс может: игнорировать его; вызвать для обработки установленную
по умолчанию функцию; вызвать собственный обработчик (перехватить сигнал). Некоторые
сигналы (например, KILL) перехватить или игнорировать невозможно.
Пользователь может послать сигнал процессу с идентификатором PID командой
$ kill [-s <сигнал>] <PID>
где <сигнал> — это номер или символическое имя.
39
Несколько часто встречающихся сигналов перечислены в таблице 1. Полный список можно
получить по команде kill -l (list).
Таблица 1. Сигналы Linux
Реакция процесса-получателя
Демоны перечитывают свои
1 HUP Hangup — отбой
конфигурационные файлы
Прекратить выполнение
2 INT Interrupt
(перехватывается)
3 QUIT Сильнее, чем INT
тоже
Обработать ошибку. По умолчанию —
4 ILL
Illegal instruction. Программная ошибка
прекратить выполнение
Floating point exception, вычислительная Обработать ошибку. По умолчанию —
8 FPE
прекратить выполнение
ошибка (деление на ноль)
Немедленно прекратить выполнение.
9 KILL Убить процесс
Не перехватывается
Segmentation violation. Попытка доступа Обработать ошибку. По умолчанию —
11 SEGV
прекратить выполнение
к чужой области памяти
13 PIPE Нет процесса, читающего из конвейера Обработать ошибку
Корректно завершить выполнение.
15 TERM Termination. Завершить процесс
Перехватывается
17 CHLD Завершился дочерний процесс
Принять возвращенное им значение
Продолжить работу приостановленного
18 CONT Продолжить работу
процесса
19 STOP Приостановить процесс
Приостановить выполнение
№ Имя
Назначение
Сообщение-сигнал не содержит никакой информации, кроме номера сигнала (для
удобства вместо номера можно использовать предопределенное системой имя). Для того
чтобы передать сигнал, процессу достаточно задействовать системный вызов kill(), а для того
чтобы принять сигнал, не нужно ничего. Если процессу необходимо как-то по- особенному
реагировать на сигнал, он может зарегистрировать обработчик, а если обработчика нет, за
него отреагирует система. Как правило, это приводит к немедленному завершению процесса,
получившего сигнал. Обработчик сигнала запускается асинхронно, немедленно после
получения сигнала, что бы процесс в это время ни делал.
Два сигнала – 9 (KILL) и 19 (STOP) – всегда обрабатывает система. Первый из них
нужен для того, чтобы убить процесс наверняка (отсюда и название).
Сигнал STOP приостанавливает процесс: в таком состоянии процесс не удаляется из
таблицы процессов, но и не выполняется до тех пор, пока не получит сигнал 18 (CONT) –
после чего продолжит работу.
В Linux сигналы можно передать активному процессу с помощью управляющих
символов:
Interrupt - ^C (Ctrl+C)
Stop - ^Z"
Terminate - ^D.
3. Команды для управления процессами в Linux
40
Моментальный снимок протекающих в системе процессов – команда ps
Моментальный снимок протекающих в системе процессов можно посмотреть с помощью
команды ps (process status). Без аргументов она покажет список процессов, связанных с
текущей консолью (или виртуальным терминалом). Список возможных ключей
команды можно, как обычно, получить по команде ps --help.
Вот некоторые полезные из них:
♦ -р < список_PID> : только процессы с указанными ID;
♦ -u < список_USERID > : только процессы, запущенные указанными пользователями;
♦ -е : все процессы в системе;
♦ -f : полная форма вывода;
♦ -Н : вывод иерархии процессов в форме дерева.
Динамика процессов — команда top
Представление о динамике процессов дает команда top. Она выводит список процессов,
отсортированный по количеству занятой памяти или использованного процессорного времени, и
обновляет его через указанные промежутки времени (по умолчанию через каждые 3
секунды).
Последний процесс, запущенный из оболочки в фоне, можно из этой оболочки сделать
активным при помощи команды fg ("foreground" – "передний план").
Команда bg (back ground), запускает в фоне последний остановленный процесс.
Командой kill, как уже говорилось, можно передать процессу сигнал. Команда имеет два
параметра - номер сигнала и идентификатор процесса, которому передается сигнал:
kill –номер_сигнала PID
Порядок выполнения работы:
1) Загрузиться не root, а пользователем.
2) Найти файл c образом ядра. Выяснить по имени файла номер версии Linux.
3) Посмотреть процессы ps –f. Прокомментировать. Для этого почитать man ps.
4) Написать с помощью редактора vi два сценария loop и loop2. Текст сценариев:
Loop:
while true; do true; done
Loop2:
while true; do true; echo ‘Hello’; done
5) Запустить loop2 на переднем плане: sh loop2.
6) Остановить, послав сигнал STOP.
7) Посмотреть последовательно несколько раз ps –f. Записать сообщение, объяснить.
8) Убить процесс loop2, послав сигнал kill -9 PID. Записать сообщение.
Прокомментировать.
9) Запустить в фоне процесс loop: sh loop&. Не останавливая, посмотреть несколько
раз: ps –f. Записать значение, объяснить.
10) Завершить процесс loop командой kill -15 PID. Записать сообщение,
прокомментировать.
11) Третий раз запустить в фоне. Не останавливая убить командой kill -9 PID.
12) Запустить еще один экземпляр оболочки: bash.
41
13) Запустить несколько процессов в фоне. Останавливать их и снова запускать.
Записать результаты просмотра командой ps –f.
Литература 1,3,4
Лабораторная работа № 8 Организация ввода-вывода в ОС Linux
1. Цель работы
Целью работы является ознакомиться на практике с организацией ввода-вывода в
операционной системе Linux, понятием виртуальной файловой системой, блочными и
символьными устройствами, понятием драйвера, блочными, символьными драйверами,
драйверами низкого уровня. Приобрести опыт монтирования файловых систем.
2. Общие теоретические сведения
К Desktop Environment (Среда рабочего стола К) KDE предназначена для
поддержания тех же функциональных возможностей графического интерфейса, какие
предоставляют и другие популярные системы, например MacOS и Windows. Кроме
выполнения стандартных функций, KDE обладает рядом специфических характеристик,
которые расширяют возможности графической среды. Для Linux разработано несколько
диспетчеров окон, таких, как olwm, fvwm, afterstep и другие. Однако, их возможности не идут
ни в какое сравнение с возможностями KDE.
2.1 Оконная среда KDE
Как и большинство оконных менеджеров, KDE представляет собой интегрированную
среду, содержащую базовые средства для решения ряда повседневных задач. Например, с
помощью KDE можно выполнять ряд операций:
• Размещение на рабочем столе ярлыков гибких дисков для их монтирования,
размонтирования и работы с ними.
• Отображение в графическом виде файловой структуры и перемещение по ней.
• Сопоставление приложений с файлами определенных типов. При этом если
щелкнуть на выбранном файле, автоматически будет загружаться нужное приложение.
• Создание на рабочем столе ярлыков принтеров. Если мышью перетащить к такому
ярлыку файл, он будет распечатан.
В состав KDE входит не только рабочий стол, но и целый набор приложений и утилит
для работы с ним. В стандартном дистрибутиве KDE имеется более сотни программ
— от игр и системных утилит до целых блоков офисных программ. Кроме того, приложения
KDE могут взаимодействовать друг с другом для упрощения выполнения всевозможных
операций.
2.2 Компоненты рабочего стола KDE.
Рабочий стол KDE разделен на три основные части - "поверхность" рабочего стола,
панель и линейку задач. Основная рабочая область среды KDE называется рабочим столом.
Это тот фон, на котором отображаются все другие компоненты. На рабочем столе можно
размещать ярлыки программ, документов и устройств, к которым чаще всего приходится
обращаться. Это позволяет легко получать доступ к соответствующим объектам для работы
с ними. Кроме той области, что отображается на экране, KDE предоставляет дополнительное
виртуальное рабочее пространство для выполнения программ. По умолчанию
поддерживается четыре виртуальных рабочих стола. Виртуальный рабочий стол — это, по
сути, другой экран, на который можно переключиться для того, чтобы запустить приложение
или выполнить еще какую-то работу. Программы и окна легко
42
перемещаются между различными виртуальными рабочими столами. Дополнительные
возможности, предоставляемые за счет использования виртуальных рабочих столов, могут
быть использованы самыми разными программами. При этом нет необходимости
сворачивать и разворачивать окна выполняемых приложений. Можно просто отложить
выполняемое приложение в таком виде, как есть, а затем вернуться к нему по завершении
выполнения.
2.2.1 Панель
Панель располагается в нижней части экрана. На панели размещаются кнопки,
позволяющие выполнять основные процедуры KDE, а также ярлыки наиболее часто
используемых программ. Одним из особо важных элементов на панели является кнопка
Application Starter (Запуск Приложений), которая расположена (по умолчанию) в левой части
панели. Это кнопка с литерой "К" над изображением зубчатого колеса. С ее помощью можно
открыть меню, в котором представлены все приложения, установленные на данную систему.
Кроме того, это же меню может быть использовано для доступа к некоторым другим
разделам KDE, таким, как диалоговая справка и Панель Управления (Control Panel).
На панели размещен переключатель виртуальных рабочих столов Пейджер, Панель
Задач (Taskbar) и Часы (Clock). Панель задач отображает открытые на текущем рабочем
столе окна. Чтобы получить немедленный доступ к программе, нужно просто щелкнуть в
соответствующем месте на панели задач.
Запустить на выполнение программу можно одним из перечисленных ниже способов.
• Щелкнуть кнопкой на панели. Некоторые программы представлены по
умолчанию на панели в виде ярлыков или кнопок, например эмулятор виртуальных рабочих
столов, панель управления, вызов справки и текстовой редактор.
• Щелкнуть на элементе рабочего стола. По умолчанию на рабочем столе
размещается только два объекта. Это Корзина и ярлык рабочего каталога. Пользователи сами
размещают на рабочем столе наиболее нужные и часто используемые программы.
• Выбрать программу из меню запуска приложений. Достаточно щелкнуть на
литере "К" и выбрать тот пункт меню, который соответствует запускаемому приложению.
• Использовать диспетчер файлов. В окне диспетчера файлов нужно выбрать
соответствующий файл и щелкнуть на нем мышью.
Можно, конечно, запустить программу на выполнение в командной строке окна
терминала – задать название программы. Можно также нажатием клавиш <Alt+F2> вызвать
окно запуска программ и ввести туда название программы.
Ряд полезных программ облегчает работу пользователя.
В первую очередь, это программа эмуляции терминала konsole, позволяющая
открывать окна и получать доступ к стандартной командной строке. На панели имеется
соответствующая кнопка с изображением маленького монитора и ракушки.
Справку в диалоговом режиме можно получить, если щелкнуть на кнопке панели с
изображением спасательного круга. Справка включает в себя разные темы, как, например,
программа-гид для начинающих пользователей и система контекстного поиска для
используемых в KDE приложений.
Просмотреть файловую систему или получить доступ к ресурсам World Wide Web
можно, используя окно диспетчера файлов. Для того чтобы диспетчер файлов отобразил в
своем окне содержимое рабочего каталога, нужно щелкнуть на папке панели с изображением
домика.
43
Щелканье по кнопке ► удаляет панель с экрана. Эта кнопка остается при этом на
экране, так что можно вернуть панель обратно. Это свойство действует только на открытый
в данный момент рабочий стол; другие рабочие столы сохраняют вид мини - или главной
панели.
Список задач - кнопка, расположенная справа от меню приложений (обозначена
пиктограммой монитора), несет меню, содержащее все активные на данный момент окна,
отсортированные по имени. Это позволяет легко и быстро найти необходимое окно и
уменьшает захламленность экрана при работе с несколькими окнами.
2.3.2 Настройка KDE
Центр управления (Control Center) (кнопка с изображением гаечного ключа)
составляет основу всей системы настроек KDE. В ее входит множество панелей для
всевозможных компонентов рабочей среды и даже некоторых приложений KDE.
В центре управления используется деление на группы, щелкнув на знаке "плюс" в углу
группы, можно увидеть список входящих в группу компонентов. Щелкнув на знаке "минус"
в том же углу группы, этот список можно свернуть. Доступ к любому диалогу с раскрытым
деревом меню можно получить при помощи Preferences (Предпочтения) и из меню запуска
программ Start Application.
Большинство диалоговых окон имеют кнопку вызова справки. В самом простом
случае это контекстная справка. Для ее получения нужно щелкнуть мышью на знаке вопроса
на рамке окна. Курсор мыши при этом изменит свой вид на стрелку с большим знаком
вопроса. Если теперь щелкнуть на том элементе диалогового окна, с которым возникли
трудности, появится прямоугольник желтого цвета с текстом справки. Для получения более
детальной справки можно воспользоваться опцией Help (Справка) на левой панели. Наконец,
если возникли проблемы с поиском необходимого диалогового окна, на этой же панели
нужно выбрать опцию Search (Поиск). Затем нужно ввести ключевое слово, по которому и
будет осуществляться поиск.
Control Center
KDE предоставляет широкие возможности по модифицированию внешнего вида окон
и рабочей области, включая отображение фона, ярлыков, шрифтов и тому подобное. Не
представляет труда и управление работой отдельных компонентов, вроде того же рабочего
стола или окна. Например, можно управлять реакцией элемента на щелчок мышью,
процессом загрузки и отображения выбранных окон, выбирать хранитель экрана. Все эти и
многие другие возможности может предоставить рассматриваемая группа Control Center.
Для настройки параметров работы рабочего стола и окон следует выбрать опцию
нужного диалога настройки под названием Desktop на дереве центра управления.
Изменение схемы цветов
Диалоговое окно выбора цвета Appearance&Themes  Colors (Цвета) предназначено
для изменения используемой цветовой схемы для окон KDE и других графических
приложений.
Цветовая схема включает в себя 18 пунктов выбора цвета для различных элементов
окна программы и установки контрастов. В области предварительного просмотра
отображаются все элементы окна, реагирующие на изменение цветовой схемы. Как только
пользователь меняет параметры или установки, в области просмотра отражаются внесенные
изменения. Можно выбрать уже готовую цветовую схему из списка Color Scheme (Схема
Цветов).
Для изменения какой-то конкретной установки нужно выбрать соответствующий
элемент из выпадающего меню области цветов Widget Color (Декорация) или щелкнуть в
44
нужной части окна предварительного просмотра. После того как элемент выбран, можно
изменить его цвет. Для этого достаточно щелкнуть на кнопке и выбрать понравившийся цвет
из появившегося диалогового окна выбора цвета.
Контраст изменяется при помощи позиционирования специального рычажка
контраста, который может размещаться в диапазоне от Low (Низкий) до High (Высокий). Эти
установки применяются при отображении трехмерных рамок вокруг элементов интерфейса
приложений KDE.
Для подтверждения выбора следует щелкнуть на кнопке Apply (Применить). Если
приходится часто менять цветовые установки, бывает полезно внести изменения в список
цветовых схем. Для этого нужно щелкнуть на кнопке Save Scheme и задать название для
своей схемы. Для удаления схемы из списка нужно выделить ее и щелкнуть на кнопке
Remove (Удалить).
Изменение фона
Для изменения цвета фона или фонового узора рабочего стола нужно на дереве опций
центра
управления
последовательно
выбрать
Control
Center=>Appearance&Themes=>Background. В результате появится диалоговое окно,
имеющее три основные области:
• список виртуальных рабочих столов;
• окно предварительного просмотра;
• окно настройки параметров.
Каждый виртуальный стол в KDE имеет собственные настройки фона. Для каждого
такого стола можно выбрать фон с одноцветной или двухцветной палитрой, а также фоновый
узор. Если используется фоновый узор, можно задать способ его отображения. Можно также
выбрать несколько узоров и автоматически переключаться между ними. Доступны и более
усовершенствованные опции, позволяющие сочетать цвета и узоры, а также поддерживать
динамические настройки фона.
В процессе внесения изменений в установки они отображаются в окне
предварительного просмотра.
Виртуальные рабочие столы
Производить настройку параметров виртуальных рабочих столов в KDE можно в
диалоговом окне Control Center Desktop Multiple Desktops.
Указатель Number of Desktops (Количество рабочих столов) показывает, сколько
виртуальных рабочих столов доступно. Их число может изменяться в диапазоне от одного до
шестнадцати. Здесь же можно задать название для рабочего стола, которое потом будет
отображено в списке окон (Window List) или использовано в настройках панели.
Хранитель экрана
Диалоговое окно выбора хранителя экрана Appearance&Themes  Screensaver
позволяет выбрать хранитель экрана и осуществить настройку его параметров. Опции
настройки бывают глобальные, как, например, опция установки времени запуска хранителя
экрана, и индивидуальные — для каждого отдельного хранителя. Диалоговое окно выбора
хранителя экрана имеет три основные секции:
• окно предварительного просмотра;
• список программ — хранителей экрана;
• опции настройки.
45
Необходимо выбрать название нужной программы из предложенного списка. Для
настройки параметров необходимо щелкнуть на кнопке Setup (Настройка) и в появившемся
диалоговом окне произвести установку нужных характеристик.
Для установки интервала времени, через который будет запускаться хранитель экрана,
нужно ввести в поле опции Settings (Установки) величину данного интервала в минутах.
Параметр Priority (Приоритет) позволяет определить распределение процессором
времени на работу хранителя экрана. Это пример того, как в Linux организована
многозадачность. Если нужно, чтобы у хранителя был наивысший приоритет (например,
для качественного вывода анимации), следует передвинуть рычажок в позицию High
(Высокий). Если же, наоборот, необходимо обеспечить высокий приоритет другихпроцессов,
нужная позиция для рычажка приоритетности хранителя — Low (Низкий).
Для того чтобы проверить выполненные установки, следует щелкнуть на кнопке Test
(Просмотр). Для подтверждения сделанного выбора нажмите кнопку ОК или Apply.
Настройка диспетчера окон
С помощью опций Control Center Appearance&Themes  Desktop/Window behavior
(Поведение Oкон) центра управления можно устанавливать поведение диспетчера окон.Эти
настройки определяют способ отображения окон в случае их перемещения и изменения
размера, а также управляют процессом разворачивания, размещения и выделения окон при
работе с диспетчером окон. Опции в верхней части диалогового окна позволяют выполнить
настройку параметров, задающих режим перемещения окна и изменения его размеров, а
также определяют функциональность команды Maximize (Развернуть). Можно задать такой
режим отображения окна при перемещении или изменении его размера, что окно будет
отображаться вместе со всем своим содержимым или же в виде прозрачной рамки. Если
выбран режим отображения всего содержимого окна, процесс перемещения или изменения
размеров окна будет требовать дополнительного времени для обновления отображаемых на
экране элементов.
Если используются окна с изменяемыми размерами, можно выбрать режим
обновления содержимого окна при каждом изменении его размера. Для этого следует
воспользоваться установками Resize (Изменение размера). Для выбора частоты обновления
можно воспользоваться специальным рычажком. Если сделан выбор, отличный от None
(Никакой), то каждый раз, при изменении размеров окна, его содержимое будет обновляться.
Это дает возможность отслеживать процесс заполнения окна программой и позволяет
выбрать оптимальные размеры последнего.
Window behavior/Moving – меню установок размещения окна на экране Placement
(Расположение) позволяет определить место на экране, где будет отображаться окно.
Поддерживаются такие методы.
• Smart (Умный) — минимизируется перекрытие между окнами.
• Cascade (Каскад) — первое окно отображается в левом верхнем углу. Следующее
окно отображается сдвинутым немного вправо и вниз, так что окна практически полностью
перекрываются. И так далее. Окна расположены, как карты в руке при игре в преферанс.
• Random (Произвольный) — окна располагаются на экране в произвольном
порядке.
Метод получения фокуса (т.е. метод выделения отдельных окон или элементов)
является, пожалуй, индивидуальным методом настроек KDE. С помощью этого метода
определяется, какое из открытых окон активно и какие следует выполнить действия при
активизации окна. Более детально это выглядит так.
46
• Click to focus (Передача фокуса щелчком). Окно получает фокус (т.е. становится
активным) при щелчке на нем мышью. При этом окно автоматически выводится на первый
план по отношению к другим окнам. Такой метод используется по умолчанию.
• Focus follows mouse (Фокус за мышью). Окно получает фокус при
непосредственном обращении к нему (это можно сделать с помощью указателя мыши,
используя комбинацию клавиш <Alt+Tab> и тому подобное). При этом окно может
подниматься поверх других окон, а может и не подниматься. Перемещение указателя мыши
на рабочую область за пределы окна не означает потерю последним фокуса. При выборе
опции Auto Raise (Всплывать автоматически) окно будет всплывать на экране при
перемещении в его область курсора в течение нескольких миллисекунд. Число этих
миллисекунд устанавливается с помощью рычажка Delay (Задержка). Если выбрана опция
Click Raise (Всплывать при щелчке), окно будет подниматься поверх других окон прищелчке
в любой части окна. В противном случае такая реакция окна будет наблюдаться только при
щелчке на его заголовке. Это исключительно полезный метод передачи фокуса, поскольку
позволяет набирать текст в одном окне и одновременно читать содержимое другого окна,
расположенного частично поверх указанного.
• Focus Under Mouse (Фокус под мышью). Окно получает фокус при любом
перемещении на него указателя мыши. При этом комбинация клавиш <Alt+Tab> может и не
помочь.
• Focus Strictly Under Mouse (Фокус только под мышью). Окно получает фокус,
только если указатель мыши находится внутри окна. Если указатель мыши находится в
рабочей области, где нет окон, ни одно из окон не получит фокус.
Использование окон
Открытое окно состоит из следующих элементов.
Window menu (Меню управления окном) - В левом верхнем углу каждого окна
находится пиктограмма манипулирования окном. При щелчке на ней появляется меню,
содержащее команды с помощью которых можно манипулировать данным окном. Maximize
(Максимизировать) увеличит окно до максимально возможного размера. Minimize
(Минимизировать) сделает ваше окно невидимым. Move (Переместить) позволяет
передвигать окно с помощью мыши. Size (Изменить размер) позволит вам увеличить или
уменьшить окно. Shade – свернет окно до заголовка. То desktop...(На рабочий стол) позволит
перевести окно на другой рабочий стол. Выберите рабочий стол, на который вы хотите
переместить это окно. Окно при этом исчезнет. Для того чтобы увидеть его снова, выберите
имя на Линейке задач, или щелкните на соответствующую кнопку рабочего стола на панели
KDE. Close (Закрыть) закроет данное окно. Always on Top – оставляет окно поверх всех
открытых окон.
Использование панели меню каждого окна в КDЕ очень просто. Щелкните на
команду, и она будет исполнена. При нажатии на правую кнопку мыши появится контекстное
меню, позволяющее вывести на экран панель меню. Можете отсоединить меню от окна и
оставить его "плавать" по экрану.
Ниже панели меню находятся пиктограммы инструментов, которые позволяют
исполнять различные команды. Можно передвинуть инструментальную панель - влево,
вправо, вверх, вниз, и, конечно, она тоже может "плавать".
3. Порядок выполнения работы
1. Запустите Центр управлений.
2. Поменяйте Фон, сначала на одноцветный, а затем вставьте фоновое изображение.
47
3. Установите хранитель экрана, на своё усмотрение, и режим ожидания равный
минуте.
4. Сделайте так, чтобы окна передвигались вместе со всем их содержимым.
5. Задайте звуковой щелчок, подтверждающий нажатие каждой клавиши.
6. Измените ширину линейки панели.
7. Запустите диспетчер приложений. И запустите программу текстового процессора
KWord.
8. В другом рабочем столе откройте программу растрового редактора Paint.
9. Откройте KWord и наберите следующий текст:
The Quick Brown Fox Jumps Over The Lazy Dog, используя два разных
стиля по вашему выбору. Сохраните этот файл в домашнем каталоге пользователя, закройте
KWord.
10. Откройте ваш домашний каталог пользователя Konqueror'ом, создайте в нем
каталог, скопируйте ваш текстовой файл в этот каталог.
11. Ознакомьтесь с содержанием домашнего каталога, скопируйте с дискеты файлы.
12. Получите справку об интересующем вас объекте.
13. Создайте любой рисунок с помощью Paint, чтобы в нем были ВСЕ фигуры(1.
эллипс, 2. окружность, 3. линия, 4. прямоугольник, 5. круг) хотя бы по одному разу и
присутствовало не менее четырех цветов.
14. Сохраните файл с рисунком в домашнем каталоге, закройте Paint.
15. Скопируйте файл с рисунком в тот же созданный вами каталог.
16. Измените атрибуты доступа к созданным файлам.
17. Покажите преподавателю ваши файлы, затем удалите их.
4. Возможность обработки объектов
Диспетчер файлов Konqueror предназначен не только для просмотра документов. Он
может также быть использован для настройки просматриваемых объектов и активной работы
с ними. Например, он использует систему типизации файлов KDE для запуска программ и
загрузки документов. Распознавание типа файла производится как для локальных файлов,
так и для файлов на удаленных узлах. Поэтому, таких проблем, как, скажем, выбор
отображаемых ярлыков или контекстных меню для данного элемента, не возникает. При
запуске файла на удаленной системе KDE загрузит этот файл и запустит нужное для работы
с ним приложение. Можно перетаскивать элементы из одного окна диспетчера файлов в
другое, создавая, таким образом, копию элемента или связь с этим элементом. Наконец, при
работе с локальной файловой системой, Konqueror может быть использован для изменения
атрибутов этой самой файловой системы (как, например, владелец файла и права доступа) с
помощью простого графического диалогового окна.
Прежде чем начинать работать с диспетчером файлов, полезно сначалапознакомиться
с некоторыми элементами интерфейса пользователя. Ниже описаны те задачи, которые
можно решать с помощью Konqueror.
48
4.1. Работа с файлами и каталогами.
Чтобы начать работу с диспетчером файлов, достаточно щелкнуть на папке любого
каталога или щелкнуть кнопкой с изображением глобуса на панели. В результате запустится
диспетчер файлов, и в главном окне будет выведено содержимое рабочего каталога. Эта
область называется областью просмотра. Как правило, в основном окне такая область
просмотра единственная. Тем не менее, там также есть область, где отображается дерево
каталогов, которая вместе с областью просмотра занимает место в основном окне при его
отображении на экране. Наконец, там еще можно увидеть и область эмуляции окна
терминала.
4.1.1. Область просмотра
В области просмотра, как правило, отображается содержимое выбранного каталога.
Для обозначения элементов в каталоге используются ярлыки, которые определяются типом
файлов. Вид окна просмотра можно изменить. Для этого нужно воспользоваться опциями
меню View (Bид)View Mode (Способ отображения). Существует пять отображаемых типов
(согласно опциям меню View).
• Icon View (ярлыки). Содержимое каталога отображается в виде больших ярлыков,
помещенных в рамку.
• Text View (Текст). Выводится детальный листинг файлов и каталогов со всеми их
атрибутами.
• MultiColumn View (Колонки). Выводится в виде колонок только название файлов
и их мини-ярлыки.
• Detailed List View (Список). Выводится та же информация, что и в режиме Text
View, только включая еще и мини-ярлыки для идентификации типа файлов.
• Tree View (Дерево). Все точно так же, как в предыдущем случае, только теперь
каждый ярлык может быть развернут в дерево подкаталогов.
Обычно скрытые файлы (те, имена которых начинаются с точки) в описанных выше
списках файлов не отображаются. Для того чтобы включить такие файлы в листинги,нужно
выбрать опции меню View(Bид)Show Hidden Files (Показывать скрытые файлы).
Переходить между каталогами с помощью диспетчера файлов можно несколькими
способами. Для перехода в подкаталог нужно щелкнуть на названии папки или каталога в
области просмотра. Для перехода в каталог высшего уровня можно щелкнуть на кнопке со
стрелкой вверх на панели инструментов диспетчера файлов. Для переключения между
каталогами, которые уже посещались, можно использовать кнопки со стрелками влево и
вправо на той же панели инструментов. Каждая из этих кнопок имеет маленькую стрелочку,
направленную вниз. Это значит, что если удерживать кнопку нажатой, можно
49
будет увидеть список адресов, куда можно перейти. Для кнопки со стрелкой вверх такой
список будет состоять из каталогов вышестоящих уровней – первого, второго и так далее.
Для кнопок со стрелками влево и вправо это будут каталоги, которые последовательно
посещались. Их хронологический порядок записан в кэш-памяти.
Для
переключения
на
элемент,
помеченный
закладкой,
нужно
выбрать
соответствующий пункт из меню закладок Bookmarks (Закладки).
Наконец, для перехода в нужное место файловой системы можно просто ввести
адрес перехода в поле Location (Адрес), размещенном в верхней части окна диспетчера
файлов. Это же можно сделать и при помощи выпадающего диалогового окна Open Location
(Открыть Адрес). Для этого достаточно выбрать опции меню Location Open Location. К
тому же результату приведет нажатие комбинации клавиш <Ctrl+О>. При вводе адреса его
можно указывать как обычный путь к каталогу или как URL. При работе с локальной
файловой системой следует использовать префикс file.
4.1.2. Дерево каталогов
Левое подокно окна диспетчера файлов, как правило, используется для отображения
дерева каталогов. По умолчанию оно скрыто, но при помощи опций в меню диспетчера
файлов Window (Окно) Show Navigation Panel (Показывать дерево директорий) его можно
вывести на экран. Подокно Tree View (Просмотр дерева) имеет три каталога наивысшего
уровня, соответствующих тем областям, в которых производится просмотр файловой
системы.
• The Home Directory (Рабочий каталог). Соответствует рабочему каталогу
пользователя.
• The Network (Сетевая папка). Эта папка содержит еще три папки: FTP Archives
(Архивы FTP) для работы с FTP узлами; Web Sites (Страницы Web), в которой хранятся
используемые закладки; Windows Shares (Сетевые ресурсы Windows), используемая для
доступа к совместно используемым ресурсам с помощью SMB.
• The Root Directory (Корневой каталог). Соответствует корневому каталогу
файловой системы.
В подокне просмотра дерева каталогов отображаются только каталоги. Файлы и связи
там не показаны. Для того чтобы развернуть или свернуть каталог, нужно щелкнуть на
квадрате со знаком плюс или минус соответственно, размещенном слева от названия
каталога. Когда каталог свернут, в квадрате отображается плюс, когда же каталог раскрыт,
в квадрате появляется минус. Для отображения в окне просмотра содержимого каталога
нужно в подокне просмотра дерева каталогов щелкнуть мышью на названии этого каталога
50
(при этом должна быть установлена связь между окнами, подробнее об этом рассказано в
разделе "Установка связи между окнами").
4.1.3. Окно эмуляции терминала
В нижней части окна диспетчера файлов можно вывести эмуляцию окна терминала
(что-то вроде консольного устройства). Для этого достаточно выбрать опции меню
Window(Окно)Show Terminal emulator (Показать окно эмуляции терминала). Это позволит
получить доступ к командной строке, где можно обычным способом вводить команды
LINUX. Когда с помощью дерева каталогов или в окне просмотра пользователь переходит в
другой каталог, изменение текущего каталога будет автоматически отображаться и в этом
окне (при установленной связи между окнами). А вот перемещения, выполняемые в окне
эмуляции терминала с помощью команды cd, не изменят содержимого области просмотра и
подокна дерева каталогов.
4.1.4. Установка связи между окнами
Изменения, внесенные в области просмотра диспетчера файлов или подокна дерева
каталогов, могут отражаться и в других окнах. По умолчанию все окна связаны друг с другом,
так что они будут отражать одни и те же каталоги. Иногда бывает полезно убрать такую связь
для отдельного окна, чтобы оно отражало какой-то один каталог.
Для установки или снятия связи между окнами, нужно воспользоваться опцией View
 Link View (Связать). Между всеми выделенными таким способом окнамиустанавливается
связь, поэтому они будут отображать одинаковые каталоги. Единственным исключением
является эмулятор окна терминала. При использовании команды cd эмулятор терминала с
другими окнами работать синхронно не будет.
4.1.5. Создание окон
Три окна, используемые в диспетчере файлов, — это только начало. Пользователь
может создать несколько копий окна просмотра или эмулятора терминала. Причем каждая
копия может работать с разными каталогами или узлами Web.
Для создания нового окна нужно выбрать существующее окно того типа, который
нужно создать. Затем следует выбрать одну из перечисленных ниже опций меню.
• Window (Oкно)Split View Left/Right (Разделить по вертикали) – текущее окно
разбивается по вертикали на два окна того же типа. Это же можно сделать, используя
комбинацию клавиш <Ctrl+Shift+L>.
• Window (Oкно)Split View Top/Bottom (Разделить по горизонтали) — текущее окно
разбивается по горизонтали на два окна того же типа. Комбинация клавиш в данном случае
<Ctrl+Shift+T>.
51
Для создаваемых окон по умолчанию связи с другими окнами не устанавливаются.
Это
удобно
для
того,
чтобы
просматривать
разные
каталоги.
Для
изменения
просматриваемой области нужно сначала просто щелкнуть мышью на окне. Маленький
зеленый индикатор указывает активное в данный момент окно. Затем следует ввести новый
адрес для просмотра в поле Location в верхней части окна Konqueror (Location  Duplicate
Windows).
Для того чтобы убрать существующее окно просмотра или эмулятор терминала,нужно
выделить его щелчком мыши, а затем выбрать опции контекстного меню WindowRemove
Active View (Убрать окно) или нажать комбинацию клавиш
<Ctrl+Shift+R>. Для изменения размера нужно при помощи мыши переместить границу
между двумя соседними окнами.
4.1.6. Сохранение формата
Для использования созданного пользователем формата для отображения на экране
диспетчера файлов, этот формат нужно сохранить. Для этого следует воспользоваться
опциями Settings(Установки) => Save View Profile (Сохранить профиль).
Сначала
для
профиля
нужно
задать
название
или
воспользоваться
уже
существующим. Затем следует определить, нужно ли сохранять в профиле URL (опция
Save URLs in profile). Если соответствующая опция выбрана, то каждый раз при загрузке
профиля будет происходить обращение к URL.
4.2. Задачи управления
В этом разделе описываются те задачи по управлению файловой системой, которые
можно решать с помощью диспетчера файлов. Сюда следует включить получение
информации о файлах, копирование, перемещение и удаление файлов, изменение таких
атрибутов файлов, как название, владельцы и права доступа к ним.
4.2.1. Получение информации о файле
Одна из самых основных процедур заключается в получении информации о файле.
Получить ее можно самыми разнообразными способами.
Например, панель состояния отображает данные о размере и типе объекта, который
выделен при помощи курсора мыши. Поэтому для получения такой информации достаточно
навести указатель мыши на интересующий объект.
Более детальную информацию о файле можно получить, если в меню View/View Mode
(Вид) выбрать опции Text View (Текст) или Detailed List (Список). В этом случае о каждом
элементе в выведенном на экран списке можно узнать такие подробности, как тип, размер,
название, время изменения, права доступа, владелец, группа и наличие связей.Ярлыки в окне
просмотра, устанавливающиеся KDE автоматически, соответствуют типу
52
каждого элемента. В KDE для отображения файлов различных типов используется большое
число ярлыков. По негласному соглашению для каталогов используется ярлык в виде папки,
для документов — ярлыки с изображением листа бумаги, а для программ — ярлык с
изображением зубчатого колеса.
4.2.2. Выбор элемента
Некоторые действия с объектами можно выполнять прямо в окне диспетчера файлов.
Существует много способов, с помощью которых можно выделять группы объектов и
производить с ними разнообразные процедуры.
Для выбора объекта без его запуска нужно щелкнуть на нем мышью, удерживая при
этом нажатой клавишу <Ctrl>. Объект будет при этом затемнен. Это означает, что онвыделен.
Для того чтобы к выделенному объекту добавить еще один, или убрать объект из группы
выделенных объектов, используется та же описанная процедура. Можно выделить группу
объектов, захватив их в рамку при помощи курсора мыши.
Большую группу объектов, которую неудобно или просто невозможно выделить с
помощью мыши, можно выделить, используя названия и спецификацию шаблона. Для этого
нужно в меню Edit (Правка) выбрать опцию Select (Выделить) или нажать комбинацию
клавиш цифровой панели <Сtrl+Плюс>. Затем в диалоговом окне Select files (Выделить
файлы) следует ввести названия файлов или спецификацию шаблона. Затем нужно щелкнуть
на кнопке ОК, после чего будут выделены все файлы, отвечающие заданному шаблону.
Аналогично, из группы выделенных файлов можно и убирать файлы. Для этого в меню Edit
следует выбрать опцию Unselect (Отменить выделение) или нажать комбинацию клавиш
цифровой панели < Ctrl+Минус>. Если воспользоваться опцией EditUnselectAll (Отменить
для всех), будет отменено выделение для всех выделенных до этого объектов. К тому же
результату приводит нажатие комбинации <Ctrl+U>. Опция EditInvert (Наоборот)
приведет к выделению невыделенных файлов и отмене выделения для выделенных. То же
можно сделать, нажав <Ctrl+*>.
4.2.3. Перемещение и копирование файлов
Наиболее простой способ переместить или скопировать файл из одного места
файловой системы в другое или создать связь с файлом заключается в том, чтобы выделить
его и просто перетащить мышью в нужное место. Таким способом можно перетаскивать
файлы из одного открытого окна диспетчера файлов в другое, между окном диспетчера
файлов и рабочим столом.
Иногда бывает трудно определить, какая из операций — копирование (Copy), или
перемещение (Move) – является наиболее приемлемой. Это особенно актуально для тех, кто
53
начинает работу с особыми файлами и каталогами KDE, вроде рабочего стола (Desktop).
Ниже приведены некоторые соображения по этому поводу.
• Если действительно необходимо создать копию объекта, следует выбирать Copy и
только Copy. Для программ такая процедура копирования используется редко. Что касается
документов и других подобных файлов, то все зависит от конкретных обстоятельств. Здесь
следует помнить, что если используется несколько копий одного файла, то внесение
изменений в одну из этих копий на других копиях не отражается. Поэтому, хотя и можно
размещать документы прямо на рабочем столе, желательно размещать там только связи с
документом, или перемещать туда файлы только на время.
• Если нужно изменить место хранения файла, следует выбирать Move. Как и в
предыдущем случае, эта процедура редко используется для программ и командных файлов.
Программы обычно хранятся в специальных каталогах, что отражено в указании
используемых в приложениях путей. Перемещение программы в другое место может
привести к тому, что она станет недоступной для использования при вызове из командной
строки.
• Для файлов конфигурации рабочего стола обычно используется команда
копирования или создается связь. Иногда смещение файла рабочего стола с привычного
места приводит к некорректной его работе. Например, файл рабочего стола MimeTypeможет
быть использован, только если он находится в каталоге mimelink. Поэтому если нет
уверенности в правильности предпринимаемых действий, перемещать файлы рабочего стола
из их специальных каталогов в другие не стоит.
4.2.4. Удаление файлов
Для того чтобы удалить файл из файловой системы, можно воспользоваться одним из
трех способов: переместить файл в корзину (Trash), непосредственно удалить файл, или
вытереть его. Помещение файла в корзину означает его перемещение в каталог Trash, т.е.
файл будет продолжать занимать место в системе и его можно будет в будущем, если
потребуется, восстановить. Непосредственное удаление файла означает, что файл из системы
полностью удаляется с освобождением места. В этом случае восстановление файла
невозможно. Вытирание подразумевает предварительную запись в файл набораспециальных
данных перед удалением. Это делается для того, чтобы быть уверенным, что даже самая
совершенная технология восстановления файлов не сможет восстановить его содержимое.
Для перемещения файла в корзину нужно в меню Edit или контекстном меню выбрать
опцию Move to Trash (Поместить в Корзину). Можно также просто перетащить нужный
объект из окна диспетчера файлов на пиктограмму с изображением корзины на
54
рабочем столе. Аналогично, для удаления файла (или файлов) нужно выделить этот файл
(или файлы) и затем выбрать опцию Delete (Удалить) из одного из упоминавшихся выше
меню.
4.2.5. Запуск файлов
Запускать файлы из окна диспетчера файлов можно так же, как это делается при
использовании рабочего стола. Можно либо просто щелкнуть на выбранном объекте, либо
перетащить объект к нужной программе, либо войти в контекстное меню документа и с
помощью опции Open With (Открыть с помощью) выбрать программу из списка.
Если щелкнуть один раз мышью на объекте, KDE выберет необходимый способ
действий, исходя из типа файла. Если KDE не в состоянии определить программу,
используемую по умолчанию для работы с файлом, KDE предложит пользователю
самостоятельно выбрать такую программу.
4.2.6. Изменение файлов и каталогов
В KDE, за счет использования простого и понятного графического диалога для работы
с объектами, изменение атрибутов объектов файловой системы является очень простой
задачей. Для получения доступа к этому диалоговому окну нужно выбрать опцию Properties
(Свойства) из контекстного меню объекта. После этого появится диалоговое окно со
вкладками, разными для объектов разного типа. Но первые две вкладки одинаковы для
объектов всех типов. Это вкладка General (Общие) и Permissions (Доступ).
4.2.6.1. Изменение названия файла
Для того, чтобы изменить название файла, нужно выбрать из контекстного меню этого
файла опцию Properties. После того, как появится окно диалога, на вкладке General нужно
отредактировать название файла в поле Name (Название), затем нажать кнопку ОК.
4.2.6.2. Замена владельца и изменение прав доступа
Для замены владельца файла и прав доступа к нему в диалоговом окне Properties
нужно перейти на закладку Properties/Permissions (Права доступа). Для изменения прав
доступа к объекту в секции Access permissions (Права доступа) диалогового окна следует
напротив нужных опций поставить флажки. Чтобы изменить владельца файла или его
группы,
нужно
воспользоваться
элементами
управления
в
секции
Ownership
(Принадлежность).
5. Порядок выполнения работы
1. Откройте окно диспетчера файлов Konqueror, щелкнув на кнопке Ноmе на панели.
2. Разверните окно.
3. Выберите опцию WindowShow Terminal Emulator.
4. Выберите опцию WindowSplit View Left/Right.
55
5. Переместите панель кнопок Button и панель адреса Location с помощью мыши.
6. Измените размеры панелей, используя специальные метки изменения размера на
границах окон.
7. Запустите на выполнение в правой панели команду vi.
8. На левой панели просмотра откройте аплет, нажав клавиши <Ctrl+O>.
9. На нижней панели воспользуйтесь компилятором и другими средствами
командной строки.
10. Выберите опцию SettingSave View Profile для сохранения профиля.
11. Введите название профиля, а затем выберите опцию Save window size in profile.
После этого нужно для сохранения установок щелкнуть на кнопке Save.
6. Контрольные вопросы
1. Какие программы называются файловыми менеджерами?
2. Какая информация отражается в области просмотра программы Konqueror?
3. Как создать новое окно с помощью программы Konqueror?
4. Перечислите задачи по управлению файловой системой, которые можно решать с
помощью диспетчера файлов?
5. Перечислите стандартные функции KDE.
6. Что является компонентом рабочего стола KDE?
7. Назовите функции панели рабочего стола.
8. Как получить справку в диалоговом режиме?
9. Какие функции предоставляет центр управления KDE?
Литература 1,3,4
Лабораторная работа №9 Удаленный доступ в Linux
Цель работы: Ознакомиться на практике со средствами удаленного управления в
операционной системе Linux. Приобрести опыт и навыки управления удаленным доступом
Linux.
План проведения занятия
4. Используя теоретические сведения изучить назначение и правила работы с
сервисом ssh.
5. Доустановить при необходимости требуемое программное обеспечение (ssh, sshd,
putty).
6. Обеспечить доступ по протоколу ssh к своему компьютеру. Предоставить права и
пароль для удаленного управления вашим компьютером соседнему - против часовой
стрелки - компьютеру.
56
7. Установить удаленное подключение к удаленному (remote) компьютеру. В качестве
Remote выступает соседний по часовой стрелке компьютер. То есть вы должны
управлять удаленно правым компьютером, и обеспечить возможность удаленного
управления вашим компьютером левому от вас компьютеру.
8. Составить отчет.
Краткие теоретические сведения
1.
Протоколы удаленного доступа: telnet и ssh
Операционная система UNIX первоначально разрабатывалась как Интернет- сервер.
Средства для работы с Сетью встроены непосредственно в ядро этой операционной
системы, а все необходимое программное обеспечение для организации сервера входит в
состав дистрибутива. UNIX-система работает со всеми сетевыми протоколами (особенно с
TCP/IP) лучше, чем любая другая операционная система для платформы Intel. Недаром
говорят, что UNIX создан для сети, как птица для полета. Все перечисленные выше качества
касаются также и ОС Linux. Существует множество направлений, где используются Linuxсерверы: WWW-серверы, FTP-серверы, почтовики, шлюзы. Поэтому удаленное управление
Linux-сервером имеет большое значение.
Для удаленного доступа к Linux используются два протокола telnet и SSH.
Telnet - протокол линии передачи данных Интернет, который дает возможность
компьютеру функционировать как терминал, работающий под управлением удаленного
компьютера. Протокол telnet был первоначально разработан для ARPAnet и является важной
частью протокола передачи данных TCP/IP.
Имеются три главных проблемы связанные с использованием telnet, делая его плохим
выбором для современных систем с точки зрения безопасности:

Используемые по умолчанию демоны telnet имеют несколько уязвимостей,
обнаруженных за эти годы, и вероятно еще несколько до сих пор существуют.

Telnet не шифрует никакие данные, которые посылаются через установленную
связь (включая пароли), и таким образом становится возможным прослушивание связи и
использование пароля позже для злонамеренных целей.

Отсутствие системы аутентификации в telnet не дает никакой гарантии, что
связь, установленная между двумя удаленными хостами не будет прервана в середине.
Нежелательно использование протокола telnet в системах, для которых важна
безопасность, таких как общественный Интернет. Сеансы telnet не поддерживают
шифрование данных. Это означает это любой, кто имеет доступ к любому маршрутизатору,
коммутатору или шлюзу в сети между двумя удаленными компьютерами, соединенными
57
сеансом связи по протоколу telnet, может перехватить проходящие пакеты и легко получить
логин и пароль для доступа в систему (или завладеть любой другой информацией, которой
обмениваются эти компьютеры) при помощи любой общедоступной утилиты подобно
tcpdump и Ethereal.
SSH - (Secure Shell) — сетевой протокол, позволяющий производить удалённое
управление компьютером и передачу файлов. Сходен по функциональности с протоколом
telnet , однако использует алгоритмы шифрования передаваемой информации.
Недостатки telnet привели к очень быстрому отказу от использования этого протокола
в пользу более безопасного и функционального протокола SSH. SSH предоставляет все те
функциональные возможности, которые представлялись в telnet, с добавлением эффектного
кодирования с целью предотвращения перехвата таких данных, как логины и пароли.
Введенная в протоколе SSH система аутентификации с использованием публичного ключа
гарантирует, что удаленный компьютер действительно является тем, за кого себя выдает.
Поскольку использование для удаленного управления протокола telnet неправильно
с точки зрения безопасности, в лабораторной работе рассмотрим только удаленное
управление по SSH.
На данный момент существует две версии протокола SSH:
Описание технологии протокола SSH-1:
Сначала клиент посылает серверу запрос на установление SSH соединения и создание
нового сеанса. Соединение будет принято сервером, если он
принимает сообщения
подобного рода и готов к открытию нового сеанса связи. После этого клиент и сервер
обмениваются информацией, какие версии протоколов они поддерживают. Соединение
будет продолжено, если будет найдено соответствие между протоколами и получено
подтверждение о готовности обеих сторон продолжить соединение по данному протоколу.
Сразу после этого сервер посылает клиенту постоянный публичный ивременный серверный
ключи. Клиент использует эти ключи для зашифровки сессионного ключа. Несмотря на то,
что временный ключ посылается прямым текстом, сессионный ключ по-прежнему
безопасный. После этого сессионный ключ шифруется временным ключом и публичным
ключом сервера и, таким образом, только сервер может его расшифровать. На этом этапе и
клиент и сервер обладают сессионным ключом и, следовательно, готовы к безопасному
сеансу передачи зашифрованных пакетов.
Аутентификация сервера происходит исходя из его возможности расшифровки
сессионного ключа, который зашифрован публичным ключом сервера. Аутентификация
клиента может происходить различными способами, в том числе DSA, RSA, OpenPGP или
58
по паролю. Сессия продолжается до тех пор, пока и клиент и сервер способны
аутентифицировать друг друга. Установленное соединение по протоколу SSH-1 позволяет
защитить передаваемые данные стойким алгоритмом шифрования, проверкой целостности
данных и сжатием.
Описание технологии протокола SSH-2:
Оба протокола, по сути, выполняют одни и те же функции, но протокол SSH-2
делает это более элегантно, более безопасно и более гибко. Основное различие между
протоколами заключается в том, что протокол SSH-2 разделяет все функции протокола SSH
между тремя протоколами, в то время как протокол SSH-1 представляет собой один единый
и неделимый протокол. Модуляцией функций протокола SSH в трех протоколах – протоколе
транспортного уровня, протоколе аутентификации и протоколе соединения, делает протокол
SSH-2 наиболее гибким и мощным механизмом создание безопасных туннелей. Ниже дано
краткое описание и назначение каждого из трех протоколов, составляющих протокол SSH-2:

Протокол транспортного уровня – предоставляет возможность шифрования и
сжатия передаваемых данных, а также реализует систему контроля целостностью данных.

Протокол соединения – позволяет клиентам устанавливать многопоточное
соединение через оригинальный SSH туннель, таким образом, снижая нагрузку, которую
создают клиентские процессы.

Протокол аутентификации – протокол аутентификации отделен от протокола
транспортного уровня, т.к. не всегда бывает необходимым использование системы
аутентификации. В случае если нужна аутентификация, процесс защищается оригинальным
безопасным каналом, установленным через протокол транспортного уровня.
Следует отметить, что протокол SSH не решает всех проблем сетевой безопасности.
Он лишь фокусирует свое внимание на обеспечении безопасной работы таких приложений,
как эмуляторы терминала. Использование реализаций протокола SSH на серверах и в
клиентских приложениях помогает защитить данные лишь в процессе передачи. Протокол
SSH ни коим образом не является заменой брандмауэров, систем обнаружения вторжений,
сетевых сканеров, систем аутентификации и других инструментов, позволяющих защитить
информационные системы и сети от атак.
Сервером SSH служит демон sshd, который запускается на UNIX-машине.
В качестве SSH-клиента в настоящее время используют OpenSSH, PuTTY, SecureCRT,
SFTPPlus, TeraTerm и др. В лабораторном практикуме будут использованы наиболее
распространенные OpenSSH – для подключение Linux-клиента и PuTTY – для подключения
Windows-клиента.
59
OpenSSH (Open Secure Shell - открытый безопасный shell) - набор программ,
предоставляющих шифрование сеансов связи по компьютерным сетям с использованием
протокола SSH. Он был создан под руководством Тео де Раадта как открытая альтернатива
коммерческого ПО от SSH Communications Security.
PuTTY (от TTY — телетайп, англ. putty — замазка) - свободно распространяемый
клиент для протоколов SSH. Изначально разрабатывался для Windows, однако позднее
портирован на Unix.
2.
Настройка сервера ssh на сервере
Чтобы служба SSH на сервере начала работать, необходимо запустить на нем демон
sshd. Желательно добавить команду запуска в сценарий загрузки системы. Демон sshd
работает по 22 порту. Можно запускать его из-под супердемона xinetd/inetd, но обычно sshd
запускается самостоятельно — в режиме standalone._
Конфигурационный файл сервера sshd называется /etc/ssh/sshd_config. Справку по его
синтаксису можно получить по команде man 5 sshd_config. В пакете openssh-server находится
конфигурационный файл с типовыми настройками.
Чтобы оградить ваш компьютер от нежелательных вторжений извне, ре- комендуется
вписать в конфигурационный файл директиву allowedadress и перечислить через пробел IPадреса тех машин, с которых разрешен вход клиентов. Например, длярабочей станции ws2 в
лаборатории можно разрешить удаленное подключение только с компьютера преподавателя
и ближайшего компьютера слева:
allowedadress 192.168.1.100 192.168.1.101
Пример файла конфигурации /etc/ssh/sshd_config:
Port 22
# Сначала пытаемся работать по протоколу SSH 2, а потом,
# если та сторона не поддерживает вторую версию, - по SSH 1
Protocol 2,1
# Ключ для протокола SSH версии 1
HostKey /etc/openssh/ssh_host_key
# Ключи для протокола SSH2 - RSA и DSA
HostKey /etc/openssh/sshjiost_.rsajtey
HostKey /etc/openssh/ssh_host_dsa_key
# Время жизни и размер ключа ssh версии 1
KeyRegenerationlnterval 3600
# По умолчанию используется размер 768 бит,установим 1024
ServerKeyBits 1024
# Время, через которое ключи сервера будут созданы заново.
# Периодическая смена ключей повышает безопасность
системы.
KeyRegenerationlnterval lh
60
#
#
#
#
#
#
Запрещаем регистрацию пользователя root по ssh.
Это не исключает возможности удаленного
администрирования: просто root придется зайти под
обычным пользователем, а затем выполнить команду su.
Зато злоумышленнику понадобится украсть
не один, а два пароля: и root, и обычного пользователя.
PermitRootLogin no
#
# Протоколирование (раскомментируйте, если нужно
# вести журнал с помощью системы syslog)
#SyslogFacility AUTH
#LogLevel INFO
# Аутентификация
# Включает парольную аутентификацию
# и запрещает пустые пароли
PasswordAuthentication yes
PermitEmptyPasswords no
#StrictModes yes
# используем RSА-аутентификацию
RSAAuthentication yes
PubkeyAuthentication yes
# Аутентификация rhosts - обычно не используется,
# поэтому запрещаем ее:
# пользовательские файлы -/.rhosts и -/.shosts не будут использоваться
RhostsAuthentication no
IgnoreRhosts yes
# НЕ использовать РАМ аутентификацию
PAMAuthenticationViaKbdlnt no
# Дополнительное время клиенту на то, чтобы аутектифицироватьсебя.
# Если за это время клиент не смог ввести пароль,
# соединение будет прекращено
LoginGraceTime 2m
# Путь к баннеру
Banner /some/path
# Подсистема sftp-сервера
Subsystem sftp /usr/libexec/openssh/sftp-server
Ключи, с которыми можно запускать sshd, перечислены в таблице 9.1.
Табл. 9.1. Ключи сервера sshd.
Ключ
-b биты
-d
-D
Назначение
Определяет число битов для ключа сервера (по умолчанию 768). Эту опцию
можно использовать, только если вы используете протокол SSH версии 1
Режим отладки (DEBUG). В этом режиме сервер не переходит в фоновый
режим, обрабатывает только одно соединение и подробно протоколирует
свои действия в системном журнале. Ключ отладки особенно полезен для
изучения работы сервера.
Так же, как и при использовании предыдущего ключа, сервер sshd не будет
переходить в фоновый режим. Однако в отличие от -d ключ -D не переводит
61
сервер в режим отладки
-е
Отравлять отладочные сообщения не в системный журнал, а на стандартный
поток ошибок
-f файл
Задает альтернативный файл конфигурации вместо /etc/ssh/sshd_config
-g время
Предоставляет клиенту, не прошедшему аутентификацию, дополнительное
время на ввод пароля. Значение 0 интерпретируется как бесконечное
ожидание
-h
Задает альтернативный файл открытого ключа (ключ узла). По умолчанию
файл_ключа используется файл /etc/ssh/ssh_host_key. Этот ключ может понадобиться,
чтобы запускать sshd от имени непривилегированного пользователя. Также
ключ -h часто применяется при запуске sshd из сценариев, задающих
различные настройки в зависимости от времени суток (в рабочее и
нерабочее время}
-i
Используется, если нужно запускать sshd через суперсервер xinetd. Обычно
демон sshd запускается отдельно при загрузке системы. Связано это с тем,
что демону sshd требуется некоторое время для генерирования ключа
сервера, прежде чей он сможет ответить на запросы клиентов. При запуске
через суперсервер при каждом соединении суперсервер будет заново
вызывать sshd, а тот — заново генерировать ключ. Однако на современных
компьютерах задержка практически не заметна. Поэтому вполне можно
запускать sshd и через суперсервер
-k время
Задает время, спустя которое ключ сервера будет создан заново. По
умолчанию время составляет 1 час. Эту опцию можно использовать только с
протоколом SSH версии 1
Указывает альтернативный порт, который демон sshd будет прослушивать
-p порт
вместо порта 22
пор га 22
-q
«Тихий режим»: не протоколировть сессию. Обычно протоколируется
начало аутентификации, результат аутентификации и время окончания
сессии
-t
Тестовый режим. Применяется для проверки корректности файла
конфигурации
-4
Разрешается использовать IP-адреса только в формате IPv4
-6
Разрешается использовать IP-адреса только в формате IPv6
3.
Удаленный доступ с Linux-клиента
Запустим сервер с CentOS Linux. Командой ps (process status) c ключами С (by
command name) и l (long format) проверим, запущен ли демон sshd, а командой ifconfig
проверим адрес сервера (рис.7.1).
62
Рис. 9.1. Проверка загрузки службы sshd и IP-адреса сервера
Видим, что процесс sshd запущен. Родительским для него является процесс
инициализации с идентификатором 1. IP-адрес сервера равен, как было задано при
установке, 192.168.100.3.
Загружаем клиентскую машину с Alt Linux Lite. Запускаем на ней терминал и
проверяем связь с сервером - набираем команду ping 192.168.100.3. Как видно из рис. 9.2
установить соединение с сервером сразу после загрузки не удается.
Рис. 9.2. Проверка связи с Linux-сервером
Требуется настройка IP-протокола. Выбираем (см. рис. 7.3) Настройка - Центр
управления системы – Сеть, вводим IP-адрес 192.168.100.4 и нажимаем кнопку
«Применить».
Рис. 9.3. Настройка IP-интерфейса на Linux-клиенте
Снова проверяем возможность установления связи с сервером. Как видно из рис. 9.4
теперь клиент «видит» сервер.
63
Рис. 9.4. После включения клиента в сеть 192.168.100 соединение установлено
Поскольку настройка при загрузке с Live-CD не сохраняется, задавать IP-адрес
клиенту надо при каждой загрузке Alt Linux c Live-CD.
Теперь пробуем подключиться удаленно к серверу.
Клиентская программа ssh может запускаться с многочисленными ключами, формат
ее запуска в общем случае следующий:.
ssh [ключи] [ключи_с_аргументами] [логин_имя@]хост.домен [команда]
Мы будем использовать ключ l, с помощью которого можно указать, от имени
какого пользователя будет осуществляться регистрации на удаленной машине, и ключ v,
который включает отображение всей отладочной информации. Набираем команду ssh с
адресом сервера и этими ключами . Как видно из этого рисунка, клиент и сервер
обменялись информацией о том, какие версии протоколов они поддерживают
(OpenSHH_4.7p1 на клиентской стороне и OpenSHH_4.3 на сервере), сервер прислал
открытый RSA ключ и программа запрашивает от пользователя подтверждение на
включение сервера в список известных хостов.
Рис. 9.5. Получение открытого ключа для шифрования данных от сервера.
Это важное свойство протокола SSH. Он разработан чтобы защитить пользователя
против атак известных как спуфинг или «злоумышленник посередине». Одна из проблем,
связанная со старыми протоколами типа Telnet, FTP, RSH и др. кроме того, что они передают
всю информацию открытым текстом, состоит в том, что данные протоколы уязвимы к атаке
подобного рода. Атакующий, имеющий доступ к промежуточной сети,
64
может перехватить ваши пакеты, сохранить их, а затем отослать непосредственному
адресату. Еще хуже, он может перезаписать ваши пакеты, например, заменив ls -la mydir на
rm -r mydir (удаление вместо просмотра) или отправить вам протрояненный файл вместо
оригинала через ваш перехваченный FTP сеанс. Атакующий может, наконец, просто
перенаправить ваше соединение к другому компьютеру, так что вы пошлете ваш пароль
другой машине. Используя этот прием, атакующий сможет узнать пароль, который защищает
вашу учетную запись, и сможет затем регистрироваться под вашим именем для своих целей.
SSH предоставляет возможность подтверждения подлинности хоста, с которым вы
соединяетесь. Если вы правильно верифицировали хост, не существует способов чтения
или манипуляции вашими пакетами промежуточным устройством. Успешная верификация
хоста показывает, что соединение зашифровано от начала до конца - ваш SSH клиент
установил безопасное соединение непосредственно с SSH сервером, и никакие
промежуточные машины не имеют доступа к этому соединению.
Так как мы подключаемся к этой машине впервые, и SSH не работает по принципу
третьего доверенного лица, такого как Certificate Authorities, вся работа, связанная с
управлением ключами, лежит на вас. Ваш клиент показывает отпечаток открытого ключа
(key fingerprint), простую для чтения строку чисел, которую вы можете использовать для
проверки ключа вручную. Если вы отвечаете "Да, отпечаток правильный", ваш SSH клиент
продолжит аутентификацию, дав вам возможность ввести ваш пароль и приступить к работе.
Как вы узнаете, что получили правильный ключ? Ведь если во время соединения с
сервером атакующий перехватил ваше SSH соединение и пропустил через себя весь трафик,
он может подсунуть вам свой ключ, вместо реального открытого ключа хоста. Существует
несколько способов проверки подлинности ключа. Например, владелец системы может
разместить отпечаток ключа на своей защищенной веб странице. Другой вариант - вы можете
позвонить системному администратору хоста и проверить ключ по телефону (если
исключена возможность перехвата злоумышленником телефонного разговора).
Подтверждаем продолжение соединения, набрав yes, и получаем от программы
сообщение о том, что сервер включен в список известных хостов (рис. 9.6).
Рис. 9.6. Проверка RSA
65
Когда вы ответили "да", наш SSH клиент сохранил ключ сервера в файле
known_hosts, который фактически является вашим личным Certificate Authority - списком
ключей всех SSH серверов, с которыми вы работаете.
Теперь можно удаленно подключиться к серверу. Повторяем команду
ssh 192.168.100.3 –l root –v
и получаем информацию об установлении соединения (рис. 9.7), где последней стадией
аутентификации выступает ввод пароля пользователя root удаленного компьютера-сервера.
Рис. 9.7. Отладочная информация удаленного подключения
Вводим пароль пользователя root сервера (рис. 9.8) и входим в сессию удаленного
управления.
Рис. 9.8. Процедура удаленного подключения после ввода пароля
Теперь можно удаленно управлять сервером. Можно, например, его удаленно
перезагрузить, выполнив команду reboot, как показано на следующем рис.9.9.
66
Рис. 9.9. Удаленная перезагрузка сервера
На этом рисунке видно, что сразу после команды reboot установить заново
удаленное подключение не удается – сервер еще не загрузился. После установления
соединения команда ps показывает, что на сервере выполняются два пользовательских
процесса – оболочка bash и собственно команда ps. Оба процесса запущены с удаленной
консоли pts/0.
Завершаем удаленный сеанс командой logout.
Разработанная лабораторная установка позволяет в деталях изучать удаленное
управление Linux-сервером. Настройка SSH на сервере может производиться с использованием
конфигурационного файла sshd_config. Справку по его синтаксису пользователь может получить
по команде man sshd_config. В пакете openssh-server находится конфигурационный файл с
типовыми настройками.
4.
Удаленный доступ с Windows-клиента
Встроенные клиенты SSH есть не у всех операционных систем, у UNIX - есть, у
Windows - нет. Под Windows можно поставить SSH клиента - PuTTY, (официальный сервер
http://www.chiark.greenend.org.uk/~sgtatham/putty/). Состав используемого дистрибутив а
PuTTY показан на рис. 9.10.
67
Рис.9.10. Состав дистрибутива PuTTY.
Putty это несколько отдельных программ, предназначенных для работы с unixсервером по протоколам SSH1, SSH2, Telnet, Rlogin, Raw. Программа работает на Windows
для Intel x86 и Alpha, а также на UNIX. Показанный на рис. 9.11 полный комплект
программ, под общим названием PuTTY, состоит из следующих утилит:
-
putty.hlp – файл справки;
-
putty.exe - клиент для соединения с сервером по протоколам telnet, ssh, raw, rlogin;
-
puttygen.exe - генератор rsa/dsa ключей;
-
pageant.exe - агент аутендификации, хранит ключи в памяти, при его использовании
не нужно руками вводить ключевую парольную фразу;
-
plink.exe - интерфейс командной строки для putty;
-
pscp.exe - безопасное копирование файлов;
-
psftp.exe - безопасный ftp клиент для копирования, просмотра, переименования
файлов и т.д.
Устанавливать putty необязательно, можно просто скопировать файлы в нужную
директорию.
Запускаем putty.exe и создаем профиль с настройками для нашего удалённого
сервера. В PuTTY можно создавать профили для различных SSH серверов, так что Вам не
придётся вбивать настройки для конкретного сервера, когда Вы захотите к нему очередной
раз подсоединиться. Сейчас мы находимся в категории Sessions (см. дерево слева на рис.
9.11). Вводим адрес хоста 192.168.100.3 в строку Host Name (or IP adress), оставляем
предлагаемые по умолчанию номер порта (22) и Protocol (SSH). Под надписью Saved
Sessions (сохранённые сессии) вводим имя профиля, например, Session with CentOS,
которое поможет вспомнить, к какому серверу относится этот профиль.
Рис.9.11. Создание профиля с настройками в PuTTY
68
Затем идем в категорию Connection -> Data и указываем в Auto-login username (см.
рис. 9.12) имя пользователя, под которым будем подключаться к SSH серверу – root.
Рис.9.12. Задаем имя пользователя удаленного хоста
Теперь возвращаемся в категорию Sessions, сохраняем профиль, нажав Save. В
следующий раз, когда Вы запустите PuTTY, просто выберите подходящий профиль из
Saved Sessions, кликните Load и Open.
Теперь мы можем подсоединиться к нашему SSH серверу, просто кликнув Open.
При первом соединении этого клиента, появляется (см. рис. 9.13) предупреждение об
угрозе безопасности, аналогичное сообщению, показанному на рис. 9.5. Это происходит
потому, что PuTTY ещё не известен открытый ключ хоста сервера. PuTTY записывает ключ
хоста для каждого сервера, к которому вы присоединяетесь, в регистр Windows. Каждый
раз, когда вы присоединяетесь к серверу, она проверяет, что ключ хоста предоставленный
сервером, есть тот же самый ключ, что был в последнем соединении. Если это не так, вы
получите предупреждение и будете иметь возможность оборвать ваше соединение, прежде
чем вы наберете какую-либо приватную информацию (такую как пароль). Поскольку мы
подключаемся к серверу по протоколу SSH, то к этому соединению относится все
сказанное в предыдущем выше относительно проверки открытого ключа сервера для
подключения Linux-клиента.
В нашем случае сомнения в подлинности сервера отсутствуют - нажимаем кнопку
Yes.
Рис. 9.13. Предупреждение PuTTY при первом подключении к удаленному хосту
69
Поскольку мы сохранили имя, под которым соединяемся, в настройках профиля, нам
не нужно вбивать его снова, мы только укажем пароль пользователя (рис. 9.14).
Рис. 9.14. Сеанс удаленного управления сервером
Удаленное соединение установлено. На рис. 9.14 показано выполнение нескольких
команд на удаленном Linux-сервере и затем – удаленная перезагрузка сервера. После
перезагрузки сессия становится неактивной. Ее следует закрыть и снова подключиться к
серверу, когда он загрузится.
Был рассмотрен наиболее распространенный способ соединения - с парольной
идентификацией. Если кто-нибудь узнает имя и пароль, он тоже сможет соединиться.
Поэтому если у Вас простой пароль и/или Вы стали жертвой атаки с прямым перебором,
могут
быть
проблемы.
В
качестве
альтернативы
можно
использовать
способ
Аутентификации самого пользователя с использованием шифрования с открытым ключом.
Вы можете использовать PuTTYgen для изготовления пары закрытого и открытого ключей.
Затем открытый ключ надо будет передать серверу, а закрытый ключ прикрепить к профилю
PuTTY. Эти процедуры подробно описаны в руководстве putty.hlp.
Таким образом, разработанная лабораторная установка позволяет в деталях изучать
удаленное управление Linux-сервером с Winows-клиента.
Порядок выполнения работы:
1) Проверить, запущен ли супер-сервер xinetd. Если не запущен – доустановить суперсервер из пакета xinetd-2.3.14-10.el5.i386.rpm.
(/usr/sbin)
2) Проверить, используя команду find, наличие и месторасположение ssh-сервера shhd.
Если sshd не установлен – доустановить из пакетов
openssh-4.3p2-16.el5.i386.rpm,
openssh-askpass-4.3p2-16.el5.i386.rpm;
openssh-server-4.3p2-16.el5.i386.rpm.
(usr/sbin)
70
6)
3) Проверить, используя команду find, наличие и месторасположение ssh-клиента.
Если ssh-клиент не установлен – доустановить из пакета
openssh-clients-4.3p2-16.el5.i386.rpm.
(/usr/bin)
4) В настройках межсетевого экрана включить ssh в список доверенных служб.
5) Изучить конфигурационный файл сервера sshd - /etc/ssh/sshd_config.
Сравнить его с примером, приведенным в разделе «Теоретические сведения»,
описать все не закомментированные директивы файла.
Подключиться по протоколу ssh к удаленному компьютеру (справа) из linux (ssh ipадрес удаленного компьютера). Выполнить удаленно несколько команд, например:
a. Запустить на удаленном компьютере редактор vi, начать редактировать
удаленно файл xinetd.conf.
b. Просмотреть, командой ps –e процессы на удаленном и на локальном
компьютерах. Прокомментировать результат наблюдения в отчете.
c. Перезагрузить (reboot) удаленно правый компьютер, согласовав эту акцию с
локальными пользователями компьютера.
7) Исследовать влияние настроек межсетевого экрана (Firewall) на удаленное
подключение, а именно: как влияет включение/выключение экрана, включение ssh в
список доверенных служб и исключение из этого списка.
8) Настроить подключение к linux-серверу удаленно, работая на локальной машине
под управлением ОС Windows (W2000, XP или Vista), используя утилиту putty.
Сравнить в отчете удаленное управление с помощью ssh и putty.
9) Запустить удаленно графическое приложение (startx).
10) Выполните исследование удаленной работы по заданию преподавателя.
Литература 1,3,4
Лабораторная работа №10 Управление пользователями и обеспечение безопасности в
ОС Linux
Цель работы: Приобрести опыт запуска и настройки общесистемных сервисов
(конфигурирования системы), управления пользователями и обеспечение безопасности.
Основные понятия
Для создания группы используется команда addgrоup, например,
addgroup g301
Для создания пользования используется команда adduser, например,
adduser anton
passwd anton
При создании группы, пользователя в файлы passwd, group каталога /etc вносится
информация о пользователе и группе. Одна учетная запись соответствует одному
пользователю и одной группе. Учетная запись пользователя содержит следующую
информацию:
71
имя пользователя;
пароль в закодированном виде;
целочисленный идентификатор пользователя;
целочисленный идентификатор группы;
комментарий;
каталог пользователя;
интерпретатор команд.
Например,
anton:*:100:1000::/home/usr:/bin/bash
Учетная запись группы содержит следующую информацию:
имя группы;
пароль в закодированном виде;
целочисленный идентификатор группы;
список имен пользователей группы.
Например,
g301:*:1000: anton
Чтобы удалить пользователя, группу используются команды: userdel, delgroup
соответственно.
Чтобы изменить пользовательскую, групповую принадлежность, используются команды
chown, chgrp.
Например, chown user file1
chgrp it402 file1
Изменение пароля осуществляется командой passwd, например,
passwd anton. Введите пароль, повторите пароль, тем самым вы измените пароль
указанному пользователю.
Права доступа к файлам и каталогам
Права доступа к файлам разделяются на три категории: права владельца файла,
права группы связанной с файлом, и права всех остальных пользователей. Каждая
категория имеет свой набор прав доступа к файлу, которые обеспечивают возможность
чтения из файла, записи в файл и его выполнения (или, наоборот, запрещают эти действия).
Права доступа называются также режимом доступа к файлу. Режимы доступа к файлу
устанавливаются с помощью команды chmod.
Вы можете проверить, какие права по умолчанию установлены для файла, который
вы создали. Для этого можно воспользоваться командой uname. Ниже дан практический
72
пример создания файла с помощью команды touch и проверки прав доступа к нему с
помощью команды ls:
$ touch file
$ ls –l file
-rw-rw-r--
1 bbal
bball
0 jul 23 12:28 file
Рассмотрим вывод команды ls подробнее.
•Права доступа к файлу представляют собой группу символов: -rw-rw-r--. Первый символ () указывает на тип объекта. Дефис говорит о том, что это обычный файл, d означает
каталог, c – символьное устройство, b указывает на блок-ориентированное устройство.
•Права доступа указываются последовательно – для пользователя, группы и всех
остальных. Отсутствие права на какой-либо вид доступа обозначается знаком дефиса.
Тремя основными типами прав доступа являются: r – право на чтение, w – право на запись
и x – право на выполнение.
•Далее следует число ссылок на данный файл.
•Владелец. Другими словами, здесь указывается, какой учетной записи принадлежит этот
файл. Изменить владельца можно с помощью команды chown.
•Группа, к которой принадлежит пользователь. Обычно члены этой группы имеют более
свободные права доступа к файлу, в отличие от всего остального мира.
•Размер файла и дата его создания (модификации).
Назначение прав доступа
Права доступа к объекту могут быть заданы двумя способами: в цифровой или в буквенной
форме. При использовании буквенной формы эти три категории обозначаются так: u –
пользователь (владелец), g – группа, o – остальные и a – все эти категории вместе. Тремя
основными типами прав доступа являются: r – право на чтение, w – право на запись и x –
право на выполнение. Комбинации r, w и x для трех категорий и являются правами доступа
к файлу:
User
Group
Others
rwx
rwx
rwx
Многие пользователи предпочитают представлять права доступа с помощью цифрового
кода, базирующегося на 8-ричной системе счисления. Ниже даны значения прав доступа в
числовой нотации:
•4 означает право на чтение;
•2 означает право на запись (модификацию);
73
•1 означает право на выполнение.
Предыдущий пример (-rw-rw-r--) в восьмеричной нотации записывается короче – 664.
Получается это число просто: старший разряд – права владельца файла, т.е. чтение и запись
(4+2), далее идет группа (4+2) и весь остальной мир (только чтение – 4).
Права доступа к каталогам
В Linux, как и в остальных UNIX, каталоги также считаются файлами. Например,
выполним следующую команду ls, чтобы увидеть разрешения на доступ:
$ mkdir foo
$ ls –ld foo
drwxrwxr-x
2
bball
bball
4096
jul 23 12:37
foo
В данном примере команда mkdir создает каталог. Команда ls с параметром –ld
отображает разрешения на доступ и иную информацию, касающуюся этого каталога в
целом, но не его содержание. Здесь можно видеть, что права доступа к каталогу имеют
значения 775 (владелец имеет все права 4+2+1, группа также все права, а весь остальной
мир не может ничего изменять в нем 4+1).
Отсюда видно, что владелец и члены группы могут выводить содержание каталога и
записывать в него. Все остальные пользователи могут только выводить содержание
каталога. (Чтобы увидеть содержание каталога, необходимо иметь разрешение на
выполнение).
Вы заметили, что в выходных данных команды ls в правах доступа стоит первой
буква d. Это значит, что данный файл является каталогом; у обычного файла на этом месте
стоит пробел. Другие буквы указывают на специальный тип файла. Например, если с
помощью команды ls вывести информацию о файле устройства для последовательного
порта, то можно увидеть следующее:
$ ls –l /dev/ttyS0
crw-rw----
1
root
uucp
4,64
Mar 23 23:38
/dev/ttyS0
Файл /dev/ttyS0 представляет символьное устройство (последовательный порт);
владеет данным файлом пользователь root и этот файл доступен также любому члену
группы uucp. Права доступа к файлу имеют значения 660 (чтение+запись, чтение+запись,
нет прав).
Изменить права доступа к файлу можно с помощью команды chmod. Чтобы задать
желаемое изменение в этой команде используют разные формы записи, включая
восьмеричную и мнемоническую. В мнемонической форме параметры команды chmod
обозначают следующее (со знаком плюс (+) они используются для добавления права на
доступ, со знаком минус – для их удаления):
74
u
Добавить (или удалить) право на какую-либо операцию с файлом (каталогом) для
юзера.
g
Добавить (или удалить) право для группы.
o
Добавить (или удалить) право для всех остальных.
a
Добавить (или удалить) право всем пользователям (all).
r
Добавить (или удалить) право на чтение.
w
Добавить (или удалить) право на запись.
x
Добавить (или удалить) право на выполнение.
Из комбинации этих слов и складывается указание о том, как следует изменить
права доступа. Например, если создать файл, скажем, readme.txt, то для этого файла будут
установлены разрешения, используемые по умолчанию (они определяются маской unmask в
файле /etc/bsdhrc);
-rw-rw-r--
1 bball bball
12 Oct 2 16:48 readme.txt
Допустим, мы хотим запретить всем без исключения пользователям
модифицировать этот файл. Сделать это можно с помощью команды Chmod:
$ chmod –aw readme.txt
$ ls –l readme.txt
-r--r--r--
1 bball bball
12 Oct 2 16:48 readme.txt
Теперь никто не сможет записывать в файл. Впрочем, владелец, если файл находится
в его домашнем каталоге или каталоге /tmp, сможет изменять этот файл – поскольку имеет
право на доступ к этим каталогам. Чтобы восстановить право на чтение и запись для
владельца, можно выполнить такую команду:
$ chmod u+rw readme.txt
$ ls –l readme.txt
-rw-------
1 bball bball
12 Oct 2 16:48 readme.txt
Чтобы только владелец мог читать файл и записывать в него, можно также
использовать восьмеричную форму записи командой chmod. Для этого необходимо
выполнить команду chmod со значениями прав доступа, равными 600:
$ chmod 600 readme.txt
Если убрать права на выполнение некоторого каталога, то файлы, в нем
содержащиеся, будут скрыты внутри каталога, не видны и не доступны никому, кроме
владельца (и, конечно, пользователя root, который имеет доступ ко всем файлам
операционной системы). Используя комбинации различных прав доступа можно легко и
быстро создать безопасную среду.
Работа в качестве root
75
В UNIX и Linux пользователь root, суперпользователь, -– это царь и бог в системе. У
него специальная учетная запись, которая разрешает ему делать все, что ему
заблагорассудится. После регистрации в качестве пользователя root, вы имеете
возможность полностью разрушить работающую систему просто вызвав команду rm:
# rm –fr /
Эта команда не только удалит все файлы и каталоги на вашей машине, но может
также стереть файловые системы даже на удаленных компьютерах. Только эта возможность
уже является достаточной причиной для соблюдения особой осторожности во время работы
с правами доступа пользователя root.
Работать в Linux в качестве root следует в тех случаях, когда необходимо
сконфигурировать файловую систему или провести работы по ремонту или сопровождению
операционной системы.
Добавление пользователей
Чтобы быстро добавить пользователя, выполните команду useradd и задайте в ней
имя пользователя:
# useradd winky
После добавления пользователя необходимо с помощью команды passwd ввести
начальный пароль для этого пользователя:
# passwd winky
Changing password for user winky.
New password:
Retype new password:
Passwd: all authentication tokens updated successfully.
Если для нового пользователя не ввести начальный пароль, то он не сможет
зарегистрироваться и войти в систему. Чтобы увидеть используемые по умолчанию
параметры для нового пользователя, выполните команду useradd с парметром –D:
# useradd –D
Group=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKELL=/etc/skel
Здесь отображаются используемый по умолчанию идентификатор группы,
домашний каталог, политика учетной записи и пароля (активны всегда, срок действия
76
пароля не ограничен), используемый по умолчанию командный интерпретатор и каталог, в
котором хранятся параметры командного интерпретатора, используемые по умолчанию.
Удаление пользователей
Для удаления учетной записи используется команда userdel. Эта команда удаляет
запись, принадлежащую данному пользователю, из системного файла /etc/passwd. Чтобы
удалить все его файлы и каталоги (например, файл почтовой очереди в каталоге
/var/spool/mail), следует воспользоваться параметром -r:
# userdel –r winky
В противном случае вам придётся вручную удалять все эти файлы.
Выключение системы
Для выключения системы используйте команду shutdown. Эта команда имеет
некоторое число опций, позволяющих например, выключить машину в заранее
определенное время. Но если нужно выключить машину немедленно, можно
воспользоваться опциями –h или halt:
# shutdown –h now
Или
# shutdown –h 0
Linux завершит работу. Важно понимать, что нельзя просто выключить Linux. Для
обеспечения нормальной последующей загрузки система должна размонтировать все
разделы. Простое выключение компьютера может привести к порче данных на жестком
диске.
Перезагрузка системы
Для перезагрузки системы также можно воспользоваться командой shutdown. Если
необходимо перезагрузить систему, воспользуйтесь опцией –r (reboot); для немедленной
перезагрузки укажите после опции now или 0 (ноль):
# shutdown –r now
Или
# shutdown –r 0
Другими командами, которые можно использовать для выключения системы и её
перезагрузки, являются halt и reboot.
Практические задания
Задание 1. Запустить Linux.
77
Рис. 1. Экран после входа в графический режим операционной системы Linux
Задание 2. Запустить консоль Linux и войти в систему под пользователем root.
Для этого найдите на рабочем столе значок
и щелкните по нему мышью.
Рис. 2.Программа-оболочка Bash
В результате откроется окно программы-оболочки Bash. Это окно очень напоминает
командную строку Windows. В окне этой программы вы видите приглашение:
dsl@box:~$
Введите после приглашения команду sudo su:
dsl@box:~$ sudo su
В результате приглашение примет такой вид:
[/home/dsl]#
78
Здесь символ «#» в командной строке указывает на то, что вы работаете из под
пользователя root.
Введите команду whoami (эта команда сообщает имя, с которым вы вошли в систему).
Завершите работу пользователя root в системе. Для этого наберите в командной строке exit.
Задание 3. Добавьте в систему нового пользователя.
Войдите в систему под пользователем root.
Добавьте в систему пользователя с именем student (используйте команды useradd и
passwd):
Useradd student
Passwd student
После ввода команды passwd student, на экране появится сообщение:
Enter new password:
Вы должные задать пароль для пользователя (не менее 5 символов) и нажать <Enter>.
Обратите внимание, что при вводе пароля, он не отображается на экране. После этого
выведется сообщение:
Re-enter new password:
Вы должны ещё раз ввести тот же самый пароль, который был вами задан для пользователя
student. После нажатия на клавишу <Enter> на экран выведется:
Password changed.
Итак, вы зарегистрировали нового пользователя в системе и задали ему пароль, теперь
можно зайти под этим пользователем, воспользовавшись командой login:
[home/dsl]# login
Box login: student
Password:
После ввода пароля вы увидите приглашение: student@tty0[/]$
Введите команду whoami и убедитесь в том, что вы зашли в систему из-под пользователя
student.
Для завершения работы с пользователем воспользуйтесь командой logout.
Задание 4. Перейти в корневой каталог и просмотреть его содержимое
Перейдите в корневой каталог:
cd /
Просмотрите его содержимое командой ls либо dir (см. рис. 3).
79
Рис. 3. Результат выполнения команды ls
Можно использовать команду ls с дополнительными опциями:
ls –l
Задание 5. Ознакомьтесь с файловым менеджером Midnight Commander.
Запустите оболочку Bash. Для этого щелкните по значку ATerminal
Наберите в консоли команду mc.
на рабочем столе.
Рис. 4. Окно программы Midnight Commander
В результате откроется окно программы Midnight Commander, очень похожей на Norton
Commander и FAR Manager (см. рис. 4). Рассмотрим основные элементы окна этой
оболочки. Большую часть окна занимает левая панель, правая панель. Ниже этих панелей
располагается строка, позволяющая вводить команды Linux. Ещё ниже располагается
строка, содержащая краткое напоминание о назначении функциональных клавиш (говорят
также «горячих») программы. В верхней части окна располагается строка меню.
Рассмотрим назначение некоторых клавиш и клавиатурных команд, применяемых при
работы с Midnight Commander:
Таблица 3. Назначение клавиш оболочки Midnight Commander
Клавиши
Назначение
TAB
переключение между панелями
F3
просмотр файла
80
F4
редактирование файла
F5
копирование файла
Клавиши
Назначение
F6
переименование (перемещение) файла
F7
создание каталога
F8
удаление файла
F9
активизация меню
F10
выход и командной оболочки
CTRL+O
убрать обе панели
CTRL+U
поменять панели местами
Insert
пометка файлов
серый плюс
выбор группы файлов (работает при включенном режиме Num Lock)
Для выбора файла в панели можно использовать клавиши управления курсором (стрелки),
Page Up, Page Down.
Используя описанные в табл. 3 команды выполните следующие действия:
Используя клавиши управления курсором, выберите подсветкой каталог и раскройте его
содержание, нажав клавишу <Enter>.
Перейдите в корневой каталог. Для того чтобы переходит в родительский каталог,
необходимо выбирать подсветкой пункт /..
Перейдите в каталог /ramdisk
Создайте в каталоге /ramdisk подкаталог student.
Скопируйте в каталог /ramdisk/student каталог ~home (он находится в корневом каталоге /)
Выйдите из Midnight Commander, нажав F10.
Задание 6. Навигация по файловой системе из командной строки.
Запустите программу оболочку bash.
Зайдите в каталог /ramdisk/student с помощью команды cd:
dsl@box:~$ cd /ramdisk/student
dsl@box:/ramdisk/student$
Перейдите в корневой каталог:
dsl@box:/ramdisk/student$ cd /
dsl@box:/$
Перейдите в домашний каталог (домашний каталог обозначается символом «тильда» ~):
81
dsl@box:/$ cd ~
dsl@box:~$
Задание 7. Работа с текстовым редактором Vim
Запустите программу оболочку bash.
Перейдите в каталог /ramdisk/student
Создайте в каталоге /ramdisk/student текстовый файл file1.txt:
dsl@box:/ramdisk/student$ vi file1.txt
Чтобы начать вводить текст нажмите одну из клавиш a, i или o. Для начала ввода текста
можно также воспользоваться клавишей <Insert>. Напечатайте в текстовом файле в первой
строке свою фамилию и имя, номер группы. В последующих строках наберите
произвольный текст. В конце файла ещё раз напечатайте свою фамилию и имя. Ввод
каждой из строк заканчивается нажатием клавиши <Enter>.
Сохраните файл и выйдите из текстового редактора. Для этого сначала нажмите <Escape>;
потом напечатайте :wq и нажмите <Enter>.
Просмотрите созданный вами файл. Для этого вновь выполните команду cat:
dsl@box:/ramdisk/student$ cat file1.txt
Задание 8. Управление файлами
Зайдите в каталог /ramdisk/student.
Переименуйте файл file1.txt в file.txt.
Создайте копию файла file.txt под именем file2.txt.
Удалите файл file.txt.
Найдите в файле file2.txt строки, содержащие ваше имя и отобразите их на экране.
Задание 9. Задание прав доступа к файлам и каталогам.
Зайдите в каталог /ramdisk/student
Просмотрите, какие права установлены для файла file2.txt. Для этого воспользуйтесь
командой ls:
dsl@box:/ramdisk/student$ ls –l file2.txt
-rw-rw-r--
1 dsl
staff
111
Nov 18 06:41 file2.txt
Установите права для файла file2.txt следующим образом: владелец, группа и все остальные
имеют на запись, чтение и выполнение:
dsl@box:/ramdisk/student$ Chmod 777 file2.txt
Задание 10. Работа с сетевыми утилитами
В Linux имеется множество утилит для работы с сетью. Рассмотрим некоторые из них.
Запустите консоль. Зайдите под пользователем root.
82
Выполните команду ifconfig (название команды происходит от «Interface Confuguration»).
Для этого наберите в командной строке ifconfig и нажмите <ENTER>.
С помощью команды можно также менять ip-адрес для сетевой карты. Наберите
следующую команду:
[/home/dsl]# ifconfig eth0 192.168.192.130
В результате ip-адрес вашего компьютера будет 192.168.1.130. Чтобы убедиться в этом
наберите команду ifconfig ещё раз:
[/home/dsl]# ifconfig
Рис. 5. Результат выполнения команды ifconfig
Eth0 – это обозначение сетевой карты (интерфейс Ethernet).
Если сетевых карт несколько, то остальные сетевые карты обозначаются eth1, eth2…
«Пропинговать» какой-либо узел (то есть проверить работоспособность протоколов TCP/IP
на компьютере) можно командой Ping. Например:
[/home/dsl]# ping 192.168.192.130.
В результате на указанный узел будут отправляться пакеты до тех пор, пока не будет
нажата комбинация клавиш Ctrl+C.
Задание 11. Получение справки по командам.
Откройте консоль.
Получите справку по команде cd. Для этого введите в командной строке help cd
Аналогичным образом получите справку для команд: dir, su, help.
Задание 12. Перезагрузка и выключение компьютера (Перед выполнением задания
покажите преподавателю результаты вашей работы по заданиям 1-11).
Перезагрузите компьютер. Для этого откройте оболочку bash. Зайдите под пользователем
root. Введите в командной строке reboot.
Вновь запустите Linux. Откройте оболочку bash и выключите компьютер командой halt.
Обеспечение безопасности
83
ОС семейства UNIX хранит следующую информацию о файлах: имя файла, тип файла,
размер файла, физическое расположение файла, время последнего доступа,
идентификаторы владельца, группы, права доступа и др. Код, определяющий полномочия
на доступ к файлу, позволяет защитить его от несанкционированного доступа. Просмотреть
права доступа к файлу можно командой ls с ключом l.
В таблице 4 приведены коды соответствия, определяющие полномочия на доступ к файлу.
Таблица 4– Коды соответствия, определяющие полномочия на доступ к файлу
Двоичный код
Восьмеричный код
Код доступа
0
000
---
1
001
--x
2
010
-w-
3
011
-wx
4
100
r--
5
101
r-x
6
110
rw-
7
111
rwx
Существует три категории пользователей:
владелец;
группа;
все остальные.
Каждой категории пользователей можно читать, редактировать, выполнять файл как
программу. Для назначения прав каждой категории пользователей отведена тройка бит.
Старший бит тройки отвечает за чтение, второй – за редактирование, младший – за
выполнение. Изменить код доступа к файлу можно командой chmod.
Спецификация команды:
chmod <код> <файлы>
Пример использования команды chmod:
chmod 777 myfile.com
В данном случае разрешается всем категориям пользователей выполнять все действия с
этим файлом.
Вышеописанный способ называют абсолютным способом установки прав. Кроме того,
можно воспользоваться и относительным способом изменения прав на доступ к файлу. Для
этого также используется команда chmod.
Спецификация команды:
chmod <изменения> <файлы>
84
Изменения можно представить следующей формулой: W op D, где
W принимает значения:
u – владелец; g – группа;
a – все; o – остальные.
op принимает значения:
+ - добавить; - - забрать, = - установить.
D принимает значения:
r – чтение;
w – редактирование;
x – выполнение.
Примеры:
chmod u+x file1 – Добавить владельцу право на выполнение этого файла.
chmod u+w g-r file2 - Добавить владельцу право на редактирование этого файла, у группы
забрать права на чтение.
chmod a+rwx file3 – Всем категориям пользователей разрешить все.
Практическое задание
№ п/п
Задание
Войдите в систему непривилегированным пользователем.
Создайте в каталоге /home свой каталог.
Создайте в нем несколько файлов разными способами: CAT, VI, TOUCH.
Просмотрите содержимое каталога /home в длинном формате. Определите
права у каталогов и файлов, задаваемые системой по умолчанию (для
каталога /home).
Измените права созданному каталогу: запретите пользователю писать
(использовать восьмеричный код для изменения прав).
Просмотрите содержимое каталога /home в длинном формате. Убедитесь в
произведенном изменении.
Создайте в своем каталоге еще один файл. Объясните поведение системы.
Измените права созданному каталогу: запретите всем всё (использовать
восьмеричный код для изменения прав).
Просмотрите содержимое каталога /home в длинном формате. Убедитесь в
произведенном изменении.
Просмотрите содержимое своего каталога. Объясните поведение системы.
Назначьте права созданному каталогу: разрешить пользователю всё, группе и
всем остальным – только читать (использовать относительные установки для
85
№ п/п
Задание
изменения прав).
Просмотрите содержимое каталога /home в длинном формате. Убедитесь в
произведенном изменении.
Выполните пункты 6, 9 еще раз. Объясните поведение системы.
Измените права одному из созданных файлов: запретите пользователю писать
(использовать восьмеричный код для изменения прав).
Просмотрите содержимое своего каталога в длинном формате. Убедитесь в
произведенном изменении.
Откройте этот файл в текстовом редакторе VI. Добавьте в файл
дополнительную информацию. Выйдите из редактора с сохранением.
Объясните поведение системы.
Измените права этому файлу: запретите всем всё (использовать восьмеричный
код для изменения прав).
Просмотрите содержимое своего каталога в длинном формате. Убедитесь в
произведенном изменении.
Отобразите содержимое этого файла (использовать, например, команду CAT).
Назначьте права созданному файлу: разрешить пользователю всё, группе –
читать и писать, всем остальным – только читать (использовать
относительные установки для изменения прав).
Просмотрите содержимое своего каталога в длинном формате. Убедитесь в
произведенном изменении.
Переключитесь на другое терминальное устройство. Войдите в систему
суперпользователем. Создайте еще одного пользователя.
Переключитесь на третье терминальное устройство. Войдите в систему под
именем вновь созданного пользователя.
Определите возможность этого пользователя работать с Вашими файлами.
Переключитесь на первое терминальное устройство. Измените одному из
файлов пользовательскую принадлежность. Измените этому файлу групповую
принадлежность.
Переключитесь на третье терминальное устройство. Определите возможность
этого пользователя работать с Вашим файлом, для которого Вы изменили
пользовательскую принадлежность.
Контрольные вопросы
86
Какие основные каталоги содержаться в корневом каталоге в Linux?
Какую команду необходимо использовать, чтобы просмотреть содержимое каталога?
Как обозначаются родительский каталог и домашний каталог пользователя? Какая команда
используется для навигации по файловой системе?
Как запустить текстовый редактор vi? Какие клавиши нужно нажать, чтобы начать вводить
текст в этом текстовом редакторе? Как сохранить текст и выйти из программы vi?
Как удалить всю строку целиком в текстовом редакторе vi? Какие ещё команды vi для
работы с текстом вы знаете?
Как просмотреть содержимое текстового файла?
Какой командой осуществляется поиск в файле и вывод на экран строк, содержащих
заданный текст?
Какие существуют права доступа к файлам и каталогам? Как задать права для файла, чтобы
он был доступен только для чтения для всех пользователей; для выполнения и записи –
только для владельца файла?
Как войти в систему Linux? Как добавить, удалить нового пользователя?
Как завершить работу с системой Linux?
Для чего предназначена программа Midnight Commander?
Почему нужно быть особенно осторожным при работе в системе Linux под пользователем
root?
Что означают права доступа к файлу, обозначенные числом 762?
Какие команды нужно знать, чтобы добавить пользователя в систему?
Как удалить пользователя в Linux?
Литература 1,3,4
87
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Основная литература
1. Олифер В.Г., Олифер Н.А. Сетевые операционные системы [Текст] - СПб: Питер,
2008. -669 с.
2. Таненбаум, Э. Современные операционные системы. 2-е изд. [Текст] — СПб.: Питер,
2007. — 1038 с.
3. Гордеев А.В. Операционные системы: Учебник для вузов. 2-е изд. [Текст] - СПб:
Питер, 2006. 416 с.
4. Основы операционных систем. Курс лекций. Учебное пособие [Текст] / В.Е. Карпов,
К.А. Коньков / Под редакцией В.П. Иванникова. - М.:ИНТУИТ.РУ "ИнтернетУниверситет Информационных технологий", 2008. -632 с.
Дополнительная литература
5. Карп Д., О'Рейлли Т., Мотт Т. Windows XP. Справочник. 2-е изд. - СПб: Питер,
2006. -784 с.
6. Ганс М. От Windows к Linux. – М.: ООО «Бином-Пресс», 2006. – 336 с.
7. Олифер Н.А., Олифер В.Г. Сетевые операционные системы [Электронныйресурс].
Режим
доступа:
http://www.citforum.ru/operating_systems/sos/contents.shtml.
8. Курячий Г.В., Маслинский К.А. Операционная система Linux [Электронный
ресурс]. - Режим доступа: http://www.INTUIT.ru.
9. Основы операционных систем. Курс лекций. Учебное пособие / В.Е. Карпов, К.А.
Коньков / Под редакцией В.П. Иванникова [Электронный ресурс]. - Режим доступа:.
http://www.INTUIT.ru.
10. Основы операционных систем. Практикум. / В.Е. Карпов, К.А. Коньков / Под
редакцией В.П. Иванникова. [Электронный ресурс]. - Режим доступа: http://www.INTUIT.ru.
88
Приложение 1
Форма журнала отчетов по лабораторным работам
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего
профессионального образования
«ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СЕРВИСА»
ЖУРНАЛ
ОТЧЕТОВ ПО ЛАБОРАТОРНЫМ РАБОТАМ
Дисциплина: Операционные системы
Студент: Иванов И.И.
Группа: БИ-301
Зачет по курсу лабораторных работ
(дата)
Количество баллов в рейтинг:
Преподаватель
(подпись преподавателя)
(расшифровка подписи)
Тольятти 2012
89
Приложение 2
Форма отчета по лабораторной работе
Отчет по лабораторной работе № 6
Работа с файловой системой ОС Linux
Цель работы: Приобрести опыт работы с файлами и каталогами в ОС Linux, настройки
прав на доступ к файлам и каталогам
Оборудование:
Аппаратная часть: персональный компьютер, сетевой или локальный принтер.
Программная часть: операционная система Linux Ubuntu, текстовый процессор
Microsoft Word.
Основные теоретические положения
Файловая система - это структура, с помощью которой ядро операционной системы
предоставляет пользователям (и процессам) ресурсы ….
…
Порядок выполнения работы
1. Запускаем виртуальную машину с Linux Ubuntu …
Выводы:
1. Права пользователя root …
2. …
Литература
1. Таненбаум, Э. Современные операционные системы. 2-е изд. [Текст] — СПб.: Питер,
2005. — 1038 с.
2. Колисниченко Д.Н., Питер В.Аллен. Linux. Полное руководство, 2-е изд. [Текст] СПб: Наука и техника, 2007. - 784 с.
Дата:
Подпись:
Учебное издание
ОПЕРАЦИОННЫЕ СИСТЕМЫ
ЛАБОРАТОРНЫЙ ПРАКТИКУМ
для студентов направления 230100.62
«Информатика и вычислительная техника»
Составители
Попов Андрей Алексеевич
Савенко Алексей Викторович
Шляпкин Андрей Владимирович
Издается в авторской редакции.
Подписано в печать с электронного оригинал-макета 28.06.2012.
Бумага офсетная. Печать трафаретная. Усл. печ. л. 6,75.
Тираж 500 экз. Заказ 197/01.
Издательско-полиграфический центр
Поволжского государственного университета сервиса.
445677, г. Тольятти, ул. Гагарина, 4.
rio@tolgas.ru, тел. (8482) 222-650.
Электронную версию этого издания
вы можете найти на сайте университета www.tolgas.ru
в разделе специальности → учебно-методическое обеспечение дисциплин.
Download