ИВАНЬКО Методичка Операционные системы 2012. Методические указания для практических занятий и выполнения лабораторных работ для студентов, обучающихся по специальности 230400 Информационные системы и технологии
Скачать 6.11 Mb.
|
Лабораторная работа №4 Управление правами доступа к файлам и каталогам. Управление правами доступа к файлам и каталогам. Эта работа посвящена изучению принципов защиты файлов и каталогов ОС UBUNTU от несанкционированного доступа. В UBUNTU эти средства являются встроенными и наиболее развиты по сравнению с другими операционными системами. Изучаются вопросы влияния задаваемых прав доступа к файлу на выполнение различных команд по обработке этих файлов. Для управления правами доступа к файлам и каталогам используется команда: chmod – изменить права доступа к указанному файлу. . Изучаются вопросы влияния задаваемых прав доступа к файлу на выполнение различных команд по обработке этих файлов. Для модификации прав доступа к файлу: chmod <права доступа> <список путей к файлам и каталогам> Если в списке путей присутствуют каталоги, можно указанием ключа -R осуществить смену прав доступа для всех файлов и каталогов, вложенных в эти каталоги. Права доступа указываются следующим образом: < [ugoa ] > <+ | -| =>< [rwx] >, где: u — владелец файла (user); g — группа пользователей, ассоциируемая с файлом (group); о — прочие пользователи (other); а — все пользователи системы указывают категорию пользователей, для которой производится изменение прав доступа (all); + — добавление; - — изъятие; = — установка прав доступа; r— права на чтение; w — права на запись; х — права на выполнение указывают виды добавляемые, изымаемые, или устанавливаемых прав доступа. Например: а+r — добавляет право чтения их файла для всех пользователей системы; ug=rwx — устанавливает все права доступа для владельца файла и пользователей, состоящих в группе, ассоциированной с файлом; og-wx — изымает права на запись и выполнение файла у всех пользователей системы, не являющихся владельцами файла, в том числе, и у пользователей, состоящих в группе, ассоциированной с файлом. Для каталогов виды прав доступа имеют следующий смысл: чтение — получение списка файлов каталога и их атрибутов; запись — создание в каталоге файлов и каталогов, их удаление, изменение; выполнение — осуществление входа в каталог, или один из вложенных в него каталогов, например, командой сё. Например, чтобы запретить всем остальным пользователям производить листинг своего домашнего каталога, пользователь rogdy мог бы ввести следующую команду: Для того чтобы пользователь мог запустить файл сценария, необходимо, чтобы он в отношении этого файла обладал правами чтения и запуска. Например, чтобы добавить их всем пользователям системы, можно воспользоваться следующей командой: chmod a+rx my_script.sh Пример работы с правами доступа Попробуйте объяснить смысл каждый строки из данного примера. Какие операции запрашивает пользователь, и какие ответы даёт система? 4.1 Методика выполнения. 1. Создайте в вашем HOME-каталоге один текстовый файл, например с именем fl. Выведите на экран полный листинг каталога. 2. Проанализируйте и умейте объяснить какие права доступа к fl имеет владелец файла, его группа и остальные пользователи. 3. Проанализируйте права доступа к вашему головному каталогу. Есть ли ограничения на работу с файлами в этом каталоге? 4. Выведите на экран содержимое файла fl. Объясните почему операция выполнилась успешно. 5. Запретите права на чтение fl владельцу и групп попытайтесь вывести на экран текст файла. Объясните, почему операция не выполняется. 6. Удалите права на запись в файл. Попытайтесь добавить к файлу текст и удалить его. Объясните результат. 7. Удалите право на модификацию каталога. Повторите операцию удаления. Объясните результат. 8. Создайте подкаталог. Разместите в нем текстовый файл. Проанализируйте права доступа к подкаталогу и объясните возможности по использованию подкаталога. 9. Удалите право владельца на «выполнение» подкаталога. 10. Попытайтесь сделать подкаталог текущим. Объясните результат. 11. Просмотрите содержимое подкаталога. Объясните результат. 12. Попытайтесь вывести длинный листинг подкаталога только для одного из файлов (поиск файла по каталогу). Объясните результат. 4.2 Контрольные вопросы. 1. Как кодируются в атрибутах файла и каталога права доступа? 2. Кто может пользоваться и изменять права доступа к файлам? 3. Какие команды для изменения символьных кодов прав доступа вы знаете? Перечислите и расскажите о назначении каждой из команд. 4. В чем разница в применении команд chmod и umask? 5. Какие команды обработки файлов разрешают ( или запрещают ) права на чтение, модификацию и исполнение? 6. Какие команды обработки каталогов разрешают ( или запрещают ) эти же права? 7. Что означает право на выполнение, применительно к каталогу? 8. Какими правами надо обладать, чтобы удалить файл или каталог? 9. Какие команды для защиты файлов вы знаете? Лабораторная работа №5 Текстовый редактор vi ОС UBUNTU. Эта работа посвящена изучению основных возможностей встроенного текстового редактора vi – наиболее распространенного средства для построения текстовых файлов, исходных текстов программ и shell-процедур. Изучаются команды: - вход в редактор и выход, сохранение файлов; - ввода текста; - удаления фрагментов текста; - копирования фрагментов текста в буферную область памяти; - вставки содержимого буфера в текст файла; - редактирования (изменения) текста; - поиска строк файлов по их фрагментам; многострочных операций с файлом (префиксные команды) vi — текстовый редактор командной строки в Ubuntu и других ОС UBUNTU. При запуске vi не открывается новое графическое окно, просмотр и редактирование файла производится в текущем окне терминала. За счет того, что vi может работать и без Графического пользовательского интерфейса (GUI), он может использоваться для редактирования файлов. Запуск редактора: а) vi     myfile (одно или несколько имен файлов через пробелы для последовательного вызова их на редактирование). Если такого файла нет, то появится начало пустого файла; курсор установится в начале первой строки. б) vi + myfile На экране конец файла; а курсор - в начале последней строки. Пример: в) vi +10 myfile На экране - часть файла и строка 10 - в центре экрана; курсор - в начале этой строки. Режимы работы. Редактор работает в нескольких режимах:
Поэтому при работе с Vi пользователю всегда нужно обращать внимание на то, в каком режиме находится редактор. Командный режим. Редактор Vi всегда начинает работу в командном режиме. В этом режиме есть два способа отдавать команды редактору.
Режим вставки (редактирования). Для перехода к этому режиму следует использовать команду insert, выполнение которой осуществляется при нажатии на клавишу "i" в командном режиме. При переключении в этот режим внизу экрана появляется надпись Insert, можно вносить изменения в текст документа. Выход из vi а) с сохранением изменений: переключиться в командный режим (Esc), ввести команду : w q б) без сохранения изменений: переключиться в командный режим (Esc), ввести команду : q ! Перемещение курсора 0 - в начало строки $ - в конец строки w - в начало слова b - в начало предыдущего слова Удаление dw - удаление слова d$ - удаление до конца строки d0 - удаление до начала строки d7w - удаление 7 слов Изменение (замена) c$ (или C)     <текст замены (может быть из нескольких строк)> Esc - замена конца строки (от курсора); c^ <текст замены> Esc - замена от начала строки до курсора cc < текст > Esc - замена одной строки; 5cc < текст > Esc - замена пяти строк. Создание новой строки о - пустая строка после текущей строки; O - пустая строка перед текущей строкой. Использование буфера обмена Занести в буфер: yw - сохранить слово (курсор - в начале слова); yy - сохранить одну строку ; 5yy - сохранить 5 строк; и т.п. При выполнении команд ndd (где n - число) удаляемые n строк заносятся в буфер. Вставка текста из буфера: - p - после текущей строки; - P - перед ней. Пример работы с текстовым редактором Vi + myfile.txt Попробуйте объяснить смысл каждый строки из данного примера. Какие операции запрашивал пользователь? Какие запросы он вводил с клавиатуры, чтобы получить тот или иной результат? 5.1 Методика выполнения 1.Войдите в редактор с созданием нового пустого файла с произвольным именем и расширением -.1. 2. Поместите в созданный файл текст, включающий не менее четырех строк с несколькими словами в каждой. 3. Вставьте по одной пустой строке до и после одной из строк файла. 4. Заполните пустые строки произвольным текстом. 5.Вставьте еще по одной строке в середину текста файла без предварительного резервирования пустых строк. 6. Перейдите в режим редактирования и выполните произвольное редактирование отдельных слов и строк файла с использованием всех команд из групп «Команды изменения текста» и «Команды отмены произвольных изменений в текущей строке». 7. Выйдите из редактора с сохранением файла. Убедитесь в сохранении созданного файла. 8. Войдите опять в vi для редактирования созданного файла с использованием команд из групп "Команды копирования в буфер" и "Команды вставки буфера в текст". 9. Поменяйте местами несколько слов в строках файла. 10. Поменяйте местами несколько строк. 11. Поменяйте местами последовательно начало строки с её концом и наоборот. 12. Выполните операцию поиска строк файла по заданным их фрагментам с различными направлениями поиска (см. «Команды поиска строки файла по фрагменту её текста»). 13. Не выходя из vi, перепишите полученную в результате редактирования версию файла в файл с тем же именем, но с расширением .new. 14. Добавьте первые 3-и строки редактируемого файла к файлу .1. 16. Не выходя из vi, загрузите в буфер файл с расширением .1. 17. Последовательно удалите части строк и несколько строк с использованием команд из групп «Команды удаления текста». 18. Выйдите из редактора без сохранения файла. 19. Просмотрите и проанализируйте содержимое редактируемых файлов в текущем каталоге. 20. Уничтожьте созданные файлы 5.2 Контрольные вопросы 1. В чем особенности и преимущества встроенного редактора vi ОС UBUNTU? 2. Какие два основных режима работы использует редактор? Как осуществляется переключение режимов? 3. Какую структуру имеет экран при редактировании файла? Назначение полей экрана? 4. Как в vi организованно редактирование открытого в нем файла? 5. Как организованна работа с клавишными командами редактора? 6. Что такое «префиксные команды» и их назначение? Как организована работа с командами этого вида? 7. Какие функции редактора вы использовали при выполнении лабораторной работы? Лабораторная работа №6 Введение в shell-программирование. Эта работа посвящена ознакомлению со средствами языка shell, для создания процедур обработки данных. Изучаются вопросы оформления shell-процедур. Изучение команд: Set – присваивание значения параметрам, передаваемым процедурам; Echo, read, banner – вспомогательные команды для ввода и вывода информации; If, then, else – команды проверки условий и ветвления вычисления в процедуре; Test – проверка файлов, числовых величин, строк символов; While, until, for – команды построения циклических процедур; - правила построения и постановки значений переменных; - вычисление арифметических выражений; - обработка символьных строк. Командный язык shell (в переводе - раковина, скорлупа) фактически есть язык программирования очень высокого уровня. На этом языке пользователь осуществляет управление компьютером. Обычно, после входа в систему вы начинаете взаимодействовать с командной оболочкой. Программирование на языке Shell происходит в окне терминала, а сами операции выполняются сразу, как только нажимается клавиша Enter после введения текста функции. (В отличие, скажем, от языка С++, где для того, чтобы компьютер выполнил введённые вами функции, необходимо запускать написанную программу нажатием клавиши F9. В Shell такого нет, а значит, нужно быть внимательным при вводе функций и команд, т.к. в случае ошибки придётся переписывать всю программу заново). Для того, чтобы, работая в терминале, переключиться в среду Shell, необходимо ввести команду sh. Признаком того, что оболочка (shell) готова к приему команд служит выдаваемый ею на экран промптер("$"). Имя shell-переменной - это начинающаяся с буквы последовательность букв, цифр и подчеркиваний. Значение shell-переменной - строка символов. Для присваивания значений переменным может использоваться оператор присваивания "=". var_1=13 - "13" - это не число, а строка из двух цифр. (аналог из С++: char var_1[3] = “13”) ) var_2="ОС UBUNTU" - здесь двойные кавычки (" ") необходимы, так как в строке есть пробел.
Возможны и иные способы присваивания значений shell-переменным. Так например запись, приводит к тому, что сначала выполняется команда "date" (обратные кавычки говорят о том, что сначала должна быть выполнена заключенная в них команда), а результат ее выполнения, вместо выдачи на стандартный выход, приписывается в качестве значения переменной, в данном случае "DAT". Можно присвоить значение переменной и с помощью команды "read", которая обеспечивает прием значения переменной с (клавиатуры) дисплея в диалоговом режиме (аналог из С++: scanf или cin). Обычно команде "read" в командном файле предшествует команда "echo", которая позволяет предварительно выдать какое-то сообщение на экран. Например: При выполнении этого фрагмента командного файла, после вывода на экран сообщения Введите трехзначное число: интерпретатор остановится и будет ждать ввода значения с клавиатуры. То число, которое пользователь введёт с клавиатуры, станет значением переменной "x". Одна команда "read" может прочитать (присвоить) значения сразу для нескольких переменных. Если переменных в "read" больше, чем их введено (через пробелы), оставшимся присваивается пустая строка. Если передаваемых значений больше, чем переменных в команде "read", то лишние игнорируются.
|