Практикум_OC_Linux. Ос unixлабораторный практикум
Скачать 0.57 Mb.
|
В режиме ввода все набранные на клавиатуре символы встав- ляются в текст. 10 В режиме последней строки вводимая команда отображается в последней строке экрана. Рис.1. Режимы редактора vi Знаком ”” (тильда) в первой позиции помечаются пустые (не- существующие) строки файла. Некоторые команды vi приведены в табл. 1.2. Таблица 1.2 dd Удаление текущей строки Yy Копирование текущей строки в буфер Yдвижение курсора Занесение отмеченных курсором символы в буфер o Вставка новой строки снизу O Вставка новой строки сверху a Добавление после курсора A Добавление после текущей строки i Вставка перед курсором I Вставка перед текущей строкой s Замена символа на символ, вводимый с клавиатуры p Вставка текста из буфера . (точка) Повтор последней выполненной команды u Отмена последней команды U Отмена всех изменений в текущей строке x Удаление символа над курсором 11 Командный режим Режим последней строки (ех) Режим ввода : ? / a, A i, I o, O s ESC Автомати - чески 1.6. Электронный справочник man В Unix имеется электронный справочник, содержащий описа- ние назначения команд, их синтаксиса, примеры использования и пр. Справочник вызывается командой man : man ключевое_слово – подробная справка по ключевому слову; man –s страница ключевое_слово – указанная страни- ца для ключевого слова; man –k ключевое_слово – список страниц, содрежащих справку по ключевому слову. 1.7. Основные команды shell Основные команды shell, необходимые для выполнения зада- ния, приведены в табл. 1.3. Таблица 1.3 Команда Назначение who вывод информации об активных пользователях echo вывод сообщений на терминал banner вывод сообщений на терминал прописными буквами man вызов оперативной справочной системы date вывод текущей даты write передача сообщений на терминал другого пользова- теля mesg разрешение/запрет вывода сообщений от других пользователей; mail отправка/получение почты news знакомство с новостями системы; pwd вывод абсолютного маршрутного имени текущего ра- бочего каталога; cd изменение рабочего каталога ls вывод информации о содержимом каталога mkdir создание каталога rmdir удаление каталога touch обновление временной метки файла cp копирование файлов cat объединение и вывод на экран содержимого файлов 12 Продолжение таблицы 1.3 Команда Назначение more постраничный просмотр содержимого файла mv перемещение или переименование файла rm удаление файла ln создание ссылки на файл alias создание псевдонима tr преобразование символов exit завершение текущего shell-а tee перехват результатов конвейера cut выделение полей из строки grep поиск по шаблону pr вывод файла на стандартный вывод в заданном фор- мате sort сортировка head вывод первых строк файла tail вывод последних строк файла wc подсчет количества символов, слов и строк read,echo чтение и вывод значений переменных test оценивание значения выражения expr,let вычисление арифметических выражений 1.8. Shell-программирование Shell позволяет сохранять последовательность команд в файле и затем выполнять ее. Чтобы запускать файл с shell-программой на выполнение, нужно добавить к правам доступа право на исполне- ние: $ chmod +x имя_файла_с_программой Ветвление в shell-программах организуется с помощью операто- ров || ,&& , if-then , if-then-else, case. Операторы цикла: for, while, until. Упражнения 1. Выведите сообщение из нескольких строк с помощью команд echo. 13 2. Выведите текущую дату. 3. Выведите имя пользователя использую переменную окруже- ния. 4. Определите имя своего HOME-каталога. 5. Создайте в своем HOME-каталоге подкаталоги вида: fruits flowers apple pear grapes rose violet dandelion 6. Находясь в HOME-каталоге, создайте файл macintosh в имею- щемся каталоге apple и несколько файлов в каталогах dark и green. Войдите в каталог flowers. Находясь в каталоге flowers, скопируйте все подкаталоги fruits вместе с находящимися в них файлами в спе- циально созданный каталог basket. 7. Находясь в каталоге flowers, удалите каталог fruits. 8. Создайте в HOME-каталоге текстовый файл myfile из несколь- ких строк с помощью команды cat. Скопируйте файл myfile в файл mycopy. Просмотрите содержимое обоих файлов. Переместите файл mycopy в каталог flowers. 9. Находясь в HOME-каталоге, создайте ссылку mylink на файл mycopy, находящийся в каталоге flowers. Просмотрите файл-ссыл- ку. Добавьте строку к файлу mylink. Какие из файлов mylink, my- copy, myfile изменились? 10. Определите число ссылок для файлов mylink, mycopy, myfile. Удалите файл mycopy. Что произошло с файлом-ссылкой? Опреде- лите число ссылок для файлов mylink, myfile. 11. Создайте аллиас dir, распечатывающий содержимое текуще- го каталога в расширенном формате. 12. Используя команду touch, создайте файлы в новом каталоге с такими именами, чтобы одновременно: — шаблону a* соответствовало 5 файлов; 14 dark gree — шаблону *a соответствовало 4 файла; — шаблону ??.? соответствовало 3 файла; — шаблону *aa* соответствовало 2 файла; — шаблону ??? соответствовал 1 файл. 13. Замените в одном заданном файле все строчные буквы на прописные, в другом – все прописные на строчные. Исключите из файла все повторяющиеся пробелы (используйте tr). 14. Создайте файл с именем *. Удалите только этот файл. Будьте осторожны при использовании символов генерации имен файлов! 15. С использованием команды cat удвойте содержимое файла, приписав исходное содержимое к концу этого же файла. Перейдите в каталог flowers. Добавьте в файл spisok список содержимого ката- лога flowers. Просмотрите содержимое файла 16. Попытайтесь прочитать с помощью команды cat несуще- ствующий файл. Какова реакция системы? Сделайте то же самое, перенаправив сообщения об ошибках в файл myerror. Что Вы види- те на экране? Просмотрите файл myerror. 17. Создайте конвейер для получения списка только имён и прав доступа к файлам, которые находятся в Вашем рабочем каталоге. 18. Измените построенный конвейер так, чтобы список сохра- нялся в файле spisok Вашего HOME-каталога, а на экран выводи- лось только число файлов в списке. 19. Создайте псевдоним loggedon, который будет выводить на экран упорядоченный в алфавитном порядке список имен работа- ющих в системе пользователей. 20. Выведите текущую дату на экран большими буквами с по- мощью команд date и banner. 21. Напишите shell-программу info, которая будет просить пользователя ввести имя, адрес, число, месяц и год рождения и вы- водить эту информацию в обратном вводу порядке 22. Напишите shell-программу, которая будет выводить на экран приглашение на ввод числа, сохранять введенное число в перемен- ной Y, и печатать сообщение “Y is greater than 7”, если значение Y больше 7, и “Y is not greater than 7” в противном случае. 15 23. Напишите shell-программу, которая выводит на экран следу- ющую статистику: а) свое имя; б) количество аргументов, с которыми она запущена; в) печатает каждый свой аргумент и длину аргумента в симво- лах; 24. Напишите shell-программу, которая определяет количество аргументов в командной строке и выдает сообщение об ошибке, если количество аргументов не равно трем, или сами аргументы, если их количество равно трем. 25. Напишите shell-программу, которая будет выдавать пригла- шение на ввод идентификатора пользователя, проверять идентифи- катор на соответствие используемым в системе и выводить полное имя HOME-каталога или, в случае недопустимого идентификато- ра, выдавать сообщение об ошибке. 26. Напишите shell-программу hello, обеспечивающую следую- щую реакцию на аргументы командной строки: аргумент “-d” — программа будет выполнять команду date; аргумент “-l” — программа выведет содержимое текущего ка- талога; при отсутствии или неправильном задании аргументов програм- ма будет выводить справку о своих опциях. 27. Напишите программу words, которая будет выдавать пользо- вателю приглашение на ввод по одному слову до тех пор, пока он не введет слово “end”. После ввода слова “end” программа должна вывести на экран все введенные слова в алфавитном порядке. 28. Измените приглашение системы так, чтобы оно содержало полное имя текущего рабочего каталога. 16 Практическое занятие 2 АДМИНИСТРИРОВАНИЕ ПОЛЬЗОВАТЕЛЕЙ Unix – многопользовательская система, т.е. в системе могут од- новременно работать несколько пользователей. Каждый пользова- тель в системе имеет регистрационное имя и числовой идентифи- катор (UID). При создании пользователя для него может быть опре- делен личный каталог и командный процессор. Пользователи объединяются в группы. Каждый пользователь должен принадлежать не менее чем одной группе. Информация о пользователях, их первичных группах и личных каталогах хранится в файле /etc/passwd. Данные о группах пользователей содержатся в файле /etc/group, зашифрованные пароли – в файле /etc/shadow. Эти файлы доступ- ны для редактирования только суперпользователю. 2.1. Формат файла /etc/passwd Одна строка файла соответствует одному пользователю. Строки имеют следующий формат: username:password:uid:gid:comment:home_dir:login_shell | | | | | | | | | | | | | ком.процессор | | | | | личный каталог | | | | комментариии | | | первичная группа пользователя | | идентификатор пользователя | символ-заполнитель для зашифрованного пароля регистрационное имя пользователя 2.2. Формат файла /etc/shadow Детали шифрования пароля и его устаревание хранятся в файле /etc/shadow. Строки имеют следующий формат: username:passwd:lastchg:min:max:warn:inactive:expire, где passwd – 13-символьный шифрованный пароль или LK -недоступная запись, NP -- нет пароля, lastchg -- количество дней между 1.01.70 и датой последнего изменения, 17 min -- минимальное число дней перед сменой пароля, max -- максимальное число дней действия пароля, warn -- количество дней, в течение которых выдается предупреждение об устаревании пароля, inactive -- количество дней неактивности учетной записи перед ее блокировкой, expire -- дата истечения срока действия учетной записи. 2.3. Формат файла /etc/group Одна строка соответствует одной группе: group_name:group_password:gid:user_list | | | | | | | список пользователей, входящих | | | в группу (через запятую) | | числовой идентификатор группы | поле осталось от ранних версий, обычно пусто или * название группы Группы, существующие по умолчанию root::0:root other::1: bin::2:root,bin,daemon sys::3:root,bin,sys,adm adm::4:root,adm,daemon uucp::5:root,uucp mail::6:root tty::7:root,tty,adm lp::8:root,lp,adm nuucp::0:root,nuucp staff::10: daemon::12:root,daemon sysadmin::14: nobody::6001: noaccess::6002: nogroup::65534: Для создания новых учетных записей пользователя и группы не рекомендуется напрямую редактировать файлы /etc/passwd и etc/group, т.к. в некоторых системах информация о пользователях хранится в системных таблицах, лучше пользоваться утилитами. 18 2.5. Утилиты командной строки Утилиты командной строки (см.табл. 2.1) являются более гиб- ким инструментом администрирования пользователей по сравне- нию с утилитой admintool. Таблица 2.1 useradd Добавление пользователя userdel Удаление пользователя usermod Изменение атрибутов пользователя groupadd Добавление группы groupmod Изменение группы groupdel Удаление группы passwd Изменение пароля пользователя 2.6. Переключение бюджета пользователя В процессе работы пользователь может изменить имя регистра- ции – открыть новый сеанс работы в системе, не завершая старый (команда su) или изменить свою группу (команда newgrp). 2.7. Файлы инициализации пользователей Принятые по умолчанию файлы инициализации (создаются ав- томатически в home-каталоге при создании учетной записи пользо- вателя): Таблица 2.2 Командный интерпретатор файл инициализации Bourne shell (sh) .profile C shell (csh) .login .cshrc Korn shell (ksh) .profile .kshrc Bourne Again shell (bash) .profile .bashrc 19 "Заготовки" для пользовательских файлов инициализации нахо- дятся в каталоге /etc/skel: файлы local.cshrc, local. profile, local.login. Пример файла инициализации .profile: PATH=$PATH:$HOME/bin:/usr/local/bin:/usr/ccs/bin:. MANPATH=/usr/share/man:/usr/local/man umask 022 export PATH МANРАТН 2.8. Файлы, регламентирующие работу пользователей Файл /etc/default/login используется для ограничения доступа суперпользователя к системе. Настройки команды su опре- деляются в файле/etc/default/su . Базовые требования к паролям пользователей задаются в файле /etc/default/passwd. 2.9. Аудит пользователей Основные команды аудита пользователей приведены в табл. 2.3 Таблица 2.3 who Список работающих пользова- телей whodo Пользователи и их процессы last Сеансы заданных пользователей и их терминалы logins -x -l имя_польз. Мониторинг деятельности поль- зователей logins -p Выявление пользователей, не имеющих паролей Если по какой-то причине необходимо запретить вход пользова- телей в систему, то для этого суперпользователь может создать файл /etc/nologin. В этом файле можно написать сообщение, которое будет выводиться пользователю при его входе в систему. 20 2.10. Средства информирования пользователей Информирование пользователей необходимо при изменении конфигурации системы или режима её работы. Средства инфор- мирования пользователей представлены в табл. 2.4. Таблица 2.4 wall [message] wall сообщение ^D -g grpname - для указанной группы Для немедленного сообщения всем пользователям, зарегистри- ровавшимся в системе Обычно используется перед shut- down write user [terminal] Конкретному зарегистрировавше- муся пользователю mail, mailx и т.п. Определенным пользователям, в т.ч. отключенным от системы файл /etc/motd Сообщение дня /var/news/* Система новостей /etc/issue Приглашение login из файла ин- формирует об особенностях рабо- ты в системе Упражнения 1. Определите, сколько пользователей зарегистрировано в системе. 2. Определете UID пользователя sys 3. Определите домашний каталог пользователя root 4. Определите, какие пользователи принадлежат группе bin 5. Определите, принадлежит ли пользователь sys группе bin 6. Определите, принадлежит ли пользователь root группе other 7. Создайте нового пользователя c помощью утилиты admintool Характеристики пользователя: Username demoX1 UID 1001 GID 10 Home directory /home/demoX1 21 Login shell bash 8. Создайте нового пользователя с помощью утилиты useradd. Характеристики пользователя: Username demoX2 UID 1002 GID 10 Login shell /usr/bin/ksh Проверьте, все ли работает (зарегистрируйтесь от имени вновь со- зданного пользователя, создайте файл в домашнем каталоге). 9. Установите личный каталог пользователю demoX2 с помощью команды usermod: /home/demoX2 . Измените интерпретатор команд по умолчанию. 10. Измените пароль пользователю demoX2 с помощью команды passwd 11. Создайте нового пользователя, редактируя файл /etc/passwd Характеристики пользователя: Username demoX3 UID 1003 GID 10 Home directory /home/demoX3 Login shell /usr/bin/ksh 12. 13. Попробуйте войти удалённо в систему под пользова- телем root . Определите, почему пользователь root не может войти в систему удалённо. 14. Для пользователя demoX3 установите новую переменную ORA- CLE_HOME=/space/oracle , так чтобы она была доступна всем процессам, запускаемым этим пользователем. 15. Определите файл, в который вносятся записи журнала аудита команды su. 16. Определите требования к минимальной длине пароля. Измените умолчание на минимальную длину пароля. 22 17. Как обеспечить наличие пути до компилятора gcc в профилях создаваемых пользователей? 18. Установить созданным пользователям ограничения на время бездействия, устаревания пароля и т.п. Проверьте работу механиз- ма управления паролями, временно изменив дату и попробовав за- регистрироваться этими пользователями. 19. Выявите всех пользователей, не имеющих пароля. 20. Создайте пользовательскую группу, добавьте в неё отдельных пользователей. 21. Заблокируйте пользователя. Разблокируйте его. 22. Удалите пользователя. Нет ли в системе бесхозных файлов? 23. Определить, в какое время созданные пользователи регистри- ровались и работали в системе. 24. Зарегистрируйтесь несколькими пользователями одновремен- но. Проверьте средства информирования интерактивных пользова- телей и останов системы с оповещением. 25. Создайте сообщение дня. Проверьте для нескольких пользова- телей. 26. Создайте несколько новостей. Проверьте возможность их чте- ния для нескольких пользователей. 23 Практическое занятие 3 ПРАВА ДОСТУПА И ЗАЩИТА ФАЙЛОВ Наличие в ОС Unix множества пользователей с разными права- ми требует от системы присутствия механизмов разграничения прав доступа. Рассмотрим штатные средства разграничения прав доступа. В большинстве систем Unix используется матричная по- литика разграничения прав доступа. Права доступа к файлам и каталогам задаются для трех катего- рий пользователей: - владелец файла, - группа, которой принадлежит файл, - все остальные. |