Лаб. раб. 5. Основные приемы работы с Unix. Файл D:\446991969.doc С. 1 из 8 Лабораторная работа 5. Основные приемы работы с Unix Часть 1. Работа с консолью 1.1. Общие сведения ОС семейства Unix являются многозадачными многопользовательскими ОС, работающими на различных аппаратных платформах. Это семейство включает в себя: некоммерческие ОС – Free/Open/Net BSD (платформы x86, AMD64, Alpha, IA-64, PC-98, UltraSPARC и т.д.); это типичные серверные ОС); коммерческие ОС – SCO Unix, Solaris, BSD-i; различные клоны Linux (преимущественно для платформы х86); многие «линуксы» претендуют даже на роль настольных ОС. Unix является основной серверной ОС. Примерно 90% серверов Интернет и локальных сетей работают под управлением различных видов Unix. Это обусловливается, с одной стороны, тем, что собственно разработка всех сетевых технологий в 1970-е годы велась на платформе Unix, а с другой – тем, что современные версии Unix превосходят ОС семейства Microsoft по надежности и быстродействию, а специализированные ОС типа Netware – по распространенности и количеству имеющегося программного обеспечения (ПО). Немалую роль также играет стоимость ПО, которая в случае «бесплатных» версий Unix ниже едва ли не на три порядка. Поэтому можно констатировать, что любой специалист-компьютерщик, в особенности работающий с сетями, рано или поздно будет вынужден столкнуться с Unix, а следовательно, основы работы с этой ОС, особенно в качестве серверной, обязан знать. Несмотря на то, что как правило для этих ОС имеются графические оболочки, последние используются редко. Основной причиной тому служит тот факт, что работа с сервером осуществляется в удаленном режиме, а передача графического интерфейса по сети – очень тяжелая в плане пропускной способности задача. Поэтому Unix-ы имеют чрезвычайно развитую систему команд, позволяющую выполнять любые операции в консольном режиме. Наличие возможности работы с консолью через сеть посредством сервиса Telnet дает полный контроль над сервером. Работа с консолью Unix очень схожа с работой в MS-DOS, хотя Unix имеет нескольку иную с точки зрения пользователя файловую систему и систему команд. Настоящая лабораторная работа построена на основе ОС FreeBSD, системы команд и именований соответственно ориентированы на эту ОС. В иных версиях Unix-ов синтаксис отдельных команд, структура файловой системы и т.п. могут отличаться, ибо каждый разработчик стремится сделать «что-то свое». Однако эти различия не носят принципиального характера. Например, переход в другой каталог может выполняться в одних версиях командой cd, в других – chdir и т.п. 1.2. Отличия работы в консоли с Unix от работы с MS-DOS Система безопасности и права пользователей Первым и наиболее существенным отличием является наличие в Unix прав доступа к файлу. Для каждого файла существует три группы прав: - для владельца, - для группы пользователей, - для всех остальных. Каждая группа включает в себя три права: - чтение (r), - запись (w), - исполнение (x). Каждое из этих прав может наличествовать (обозначается соответствующей буквой r,w,x) либо отсутствовать (обозначается знаком “-”). Лаб. раб. 5. Основные приемы работы с Unix. Файл D:\446991969.doc С. 2 из 8 При работе с файлом все три группы прав выводятся последовательно, друг за другом по схеме: Права владельца r w Права группы x r w Права ост. пользователей x r w x Пусть, например, владелец имеет полный доступ к файлу, группа (по умолчанию, если не произведено специальных операций, это та группа пользователей, к которой принадлежит владелец файла) – права на чтение и выполнение, все остальные – только право на чтение файла. Запись прав в этом случае имеет вид: rwxr - xr - -. Смена прав осуществляется командой chmod, имеющей два формата записи – символьный и восьмеричный. Символьная форма: chmod u|g|o|a +|- r|w|x <имя файла>, где u, g, o, a – соответственно права владельца, членов группы, остальных пользователей и всех перечисленных категорий одновременно; +, - – предоставить и лишить права соответственно. Например, команда chmod a+w aaa.txt предоставит всем группам пользователей право на запись файла aaa.txt. В результате запись прав примет вид: rwxrwxrw -. Восьмеричная форма: chmod <код прав> <имя файла>, где <код прав> – восьмеричное число, кодирующее желаемые права следующим образом: по приведенной выше схеме-табличке наличие права кодируется как 1, а отсутствие – как 0. Пример соответствия восьмеричной и символьной записей прав для приведенных выше ситуаций. Исходные права Измененные права Символьная запись rwxr - xr - rwxrwxrw - Перекодировка rwx rwx 111 101 rwx rwx 111 111 Восьмеричная запись rwx 100 rwx 110 754 776 Система прав используется для того, чтобы избежать случайного или преднамеренного вмешательства в чужую информацию. Поскольку к одной машине могут быть подключены сразу несколько пользователей, возможна ситуация, когда сразу несколько человек будут претендовать на один и тот же ресурс (в частности, файл или каталог). Каждому пользователю (вернее, каждому логину, поскольку Unix допускает одновременную работу нескольких пользователей под одним логином) отводится так называемый домашний каталог, имеющий имя вида /home/<логин>. Желательно каждому пользователю работать только в домашнем каталоге, однако ничто не мешает выйти из него и зайти в «чужой» каталог. Но если, например, пользователь задал для всех своих файлов права rwxr-xr-x, то получить доступ «на запись» сможет только он, все остальные пользователи смогут только просматривать файлы. Если исключить и право “r”, файл будет доступен только для выполнения (если это исполняемый файл). Исключение права “r” для каталога запрещает просмотр его содержимого, т.е. в этот каталог нельзя войти. Если какой-либо файл доступен для записи для нескольких пользователей, то редактировать его, тем не менее, сможет в каждый конкретный момент только один пользователь. Система в этом случае автоматически блокирует доступ всех остальных. Файловая система В отличие от MS-DOS, файловая система Unix не разрешает пользователю оперировать с реальными дисками, скрывая их за виртуальной структурой каталогов. Любая деятельность пользователя всегда начинается с некоторого абстрактного «корневого» каталога, в котором содержится стандартное дерево подкаталогов: bin/ - системный каталог; tmp/ - временный каталог для swap-файлов и т.п. ; dev/ - каталог для доступа к физическим устройствам (портам, сменным накопителям и т.п.) ; usr/ - каталог для пользователей; в нем содержатся «домашние каталоги» каждого пользователя; Лаб. раб. 5. Основные приемы работы с Unix. Файл D:\446991969.doc С. 3 из 8 etc/ - «все остальное». Рекомендуется все пользовательские действия производить в каталоге /usr, чтобы случайно не повредить ОС. Еще одним отличием Unix от MS-DOS является то, что эта ОС чувствительна к регистру. Имена файлов и каталогов могут содержать большие и малые буквы, а также точку. В MS DOS точка отделяет расширение файла; при этом стандартные расширения распознаются обрабатывающими программами. В Unix понятие расширения используется только как средство для того, чтобы указать пользователю тип файла. Например, имя aaa.tar.gz означает, что этот файл – архив, созданный архиватором Gzip, в котором, в свою очередь, находится архив, созданный архиватором TAR. Так же, как и в ДОС, в Unix при операциях с файлами могут использоваться символы «?» (один любой символ) и «*» (любое количество любых символов.). 1.3. Основные команды Основные команды для работы с файловой системой Unix схожи с используемыми в DOS: mkdir <имя каталога> - создание каталога; pwd – показывает текущий рабочий каталог, т.к. в приглашении Unix он отображается не всегда; cd <имя каталога> - переход в каталог; rmdir <имя каталога> - удаление каталога; ls – вывод списка файлов (аналог dir в ДОСе); поддерживается «короткий» (как в ДОСе) и «длинный» (с правами, размерами и т.п.) вывод имен файлов; «длинный» список будет показан по команде ls –la; rm <имя файла> - удаление файла; passwd – смена пароля; ps – просмотр списка процессов аналогично тому, как он выглядит в Windows 2000; man <команда> - просмотр справки по заданной команде; echo <строка> – вывод строки на экран; перенаправлением вывода команды можно создать файл: echo <строка> > <имя файла>; конец файла – комбинация ctrl/d; cp <файл1> <файл2> или cp <файл1> <файл2> .... <файлN> <каталог> – копирование файлов (файла в файл или файлов в каталог); cat <имя файла1> <имя файла2> – слияние файлов. Создать файл можно с помощью команды echo перенаправлением вывода: echo <строка> > <имя файла> Конец файла – комбинация ctrl/d. Просмотреть файл можно с помощью команды cat, указав только имя этого файла: cat <имя файла>. Прерывание выполнения команды – комбинация ctrl/c. 1.4. Редактор VI Этот подраздел не является обязательным для освоения и может быть опущен. Редактор запускается командой vi <имя файла>. Режимы редактора Командный режим - любая нажатая клавиша интерпретируется как команда, а не как текст. Исходное состояние при входе в редактор - командный режим. Режим вставки – режим, в котором редактор ждет ввода текста. Переключение режимов Лаб. раб. 5. Основные приемы работы с Unix. Файл D:\446991969.doc С. 4 из 8 Перед переключением из командного режима в режим вставки необходимо установить английский расклад клавиатуры. Большие и маленькие буквы различаются. Нажатие следующих клавиш переключает редактор в режим вставки, при этом новый текст будет введен: - перед курсором, если была нажата клавиша <i> - после курсора, если была нажата клавиша <a> - в начале строки, если была нажата клавиша <I> - в конце строки, если была нажата клавиша <A> - в новой строке над текущей, если была нажата клавиша <o> - в новой строке под текущей. если была нажата клавиша <O> Чтобы вернуться в командный режим, нужно нажать клавишу <Esc>. Перемещение курсора Необходимо находиться в командном режиме, расклад клавиатуры - английский. Большие и маленькие буквы различаются. Нажатие следующих клавиш перемещает курсор: <стрелка вверх> - на одну строку вверх (аналог - <k>), <стрелка вниз> - на одну строку вниз (аналог - <j>), <стрелка влево> - на один символ влево (аналог - <h>), <стрелка вправо> - на один символ вправо (аналог - <l>), <b> - на одно слово влево, <w> - на одно слово вправо, <0> - в начало строки, <$> - В конец строки, <ctrl-B> - на один экран назад, <ctrl-f> - на один экран вперед. Удаление текста Необходимо находиться в командном режиме. Большие и маленькие буквы различаются. Нажатие следующих клавиш удаляет: <x> - символ, на который указывает курсор, <X> - символ перед курсором, <dw> - слово справа от курсора, <db> - слово слево от крсора, <d0> - текст от начала строки до курсора, <d$> - текст от курсора до конца строки, <dd> - текущую строку, <dG> - текст от курсора до конца файла. Поиск текста Необходимо находиться в командном режиме. Большие и маленькие буквы различаются. /<текст> поиск первого вхождения после курсора, ?<текст> поиск первого вхождения в текст до курсора, :%/<старый текст>/<новый текст> находит «старый текст» и заменяет на «новый текст». Сохранение файла и окончание работы с vi Необходимо находиться в командном режиме, расклад клавиатуры - английский. Большие и маленькие буквы различаются. :x - записать файл и выйти из vi, :w - записать файл, не выходя из редактора, :q - выход из редактора, если не вносили изменений в файл, :q! - выход из редактора без сохранения изменений в файле. Лаб. раб. 5. Основные приемы работы с Unix. Файл D:\446991969.doc С. 5 из 8 Часть 2. Работа в сети 2.1. Взаимодействие с Unix-сервером Основы TCP/IP Основой построения Интернет, а, следовательно, и сетевых сервисов Unix является протокол TCP/IP. Более подробно об этом протоколе можно прочитать в его описаниях или в специальной литературе, для данной же работы необходимо представлять себе, каким образом идентифицируется машина в сети, а также общий принцип передачи информации. Каждый компьютер в сети Интернет имеет уникальный IP-адрес, состоящий (в пока действующей версии протокола IPv4) из 4 байт и записываемый в виде ххх.ххх.ххх.ххх в десятичном представлении. Этого адреса достаточно, чтобы однозначно идентифицировать машину (либо иное устройство – сетевой принтер и т.п.) в сети. Поскольку один сервер может предоставлять различные виды услуг (www, e-mail, ftp и др.), для однозначной идентификации типа сервиса, к которому обращается клиент, вводится понятие номера порта. Номер порта записывается через двоеточие (иногда – через пробел) после ipадреса, например 193.233.70.27:80 означает обращение к 80-му порту машины с адресом 193.233.70.27. Многие службы имеют заранее зарезервированные номера портов, поэтому при обращении к ним не требуется указывать порт, однако возможность эта сохраняется в любом случае. Например, сервис www (работающий по протоколу http) использует порт 80, поэтому веб-броузер всегда обращается по этому порту. Тем не менее, указав в строке адреса ip-адрес нужной машины с номером порта, можно заставить броузер обратиться к произвольному порту. Стандартным портом для службы удаленного доступа telnet, описанной ниже, является 23-й, однако и сервер, и клиент могут быть принуждены к использованию других портов. Удаленный доступ к Unix-серверу Для администрирования и работы с Unix-сервером на расстоянии используется протокол Telnet и одноименный клиент (либо его позднейшие вариации, основанные на протоколах SSH), позволяющие получать полноценный доступ к консоли Unix через сети Internet/Intranet. Различные разновидности клиента Telnet являются обязательными компонентами всех сетевых ОС, в том числе и Windows 2000. Telnet для Windows 2000 – достаточно примитивная программа, позволяющая работать только с базовой версией протокола Telnet, что, однако, сильно упрощает ее освоение. Запуск программы Telnet осуществляется из командной строки командой telnet <ip-адрес сервера> <№ ip-порта>. После ожидания соединения в окне Telnet появится приглашение Unix, аналогичное тому, что имело бы место при работе с локальной консоли. Работа с Unix должна в обязательном порядке завершаться командой exit. Это, с одной стороны, позволит серверу не тратить ресурсы на поддержание уже ненужного соединения, а с другой – является элементарным требованием норм безопасности. 2.2. Простейшие сетевые службы Одними из простейших сетевых служб являются Ping и Traceroute, предназначенные для проверки функциональности сети и, частично, для оценки ее быстродействия. Ping посылает на заданную машину несколько пакетов, получает ответ и выдает время, прошедшее между посылкой и приемом (часто это время также называют ping (пинг), используя его для оценки быстродействия сети). Нормальная работа этой утилиты (т.е. прохождение пакетов в обе стороны) свидетельствует о том, что на обоих машинах верно настроены сетевые службы, между ними есть как минимум один исправный путь, по которому идут пакеты, а службы адресации работают верно. Фактически это свидетельство «наличия сети». Вызов утилиты осуществляется командой ping <ip-адрес машины>. Прерывание – ctrl/C. Утилита traceroute позволяет не только убедиться в прохождении пакетов, но и увидеть маршрут, по которому они следуют. Для каждого сервера, являющего собой звено пути между машинами, отображается его доменное (символьное) имя (если оно есть), ip-адрес, время прохождения трех пакетов. Вызов: traceroute <ip-адрес машины>. Прерывание – ctrl/C. Лаб. раб. 5. Основные приемы работы с Unix. Файл D:\446991969.doc С. 6 из 8 Обе утилиты также имеют большое количество вспомогательных ключей, позволяющих тоньше настраивать их работу (например, задавать размер пакета и т.п.). Список ключей и их значение можно получить с помощью справочника man. 2.3. Электронная почта В состав Unix входят утилиты для работы с электронной почтой, предназначенные для использования в консольном режиме – mail и sendmail. Mail позволяет читать и отправлять электронные сообщения, sendmail – отправлять. Использование mail для написания сообщения: mail <адрес или имя пользователя> После этого будут запрошены тема (subject) и собственно само сообщение. Ввод сообщения завершается по нажатию ctrl-d, после чего mail запрашивает адрес, на который следует послать копию, и отправляет сообщение. В качестве адреса может фигурировать либо «обычный» e-mail, либо имя (логин) пользователя, зарегистрированного в системе. Таким образом, обеспечивается одновременно и взаимодействие с внешним миром, и обмен информацией внутри системы. Для чтения сообщений следует запустить mail без параметров, после чего будет выведен список имеющихся сообщений, а mail перейдет в командный режим и будет ожидать одной из следующих команд: p <№ сообщения> - читать сообщение; d <№ сообщения> - удалить сообщение (также используется в режиме чтения сообщения); r <№ сообщения> - ответить на сообщение (также используется в режиме чтения сообщения); q – выйти из mail. Утилита sendmail позволяет отправлять электронную почту аналогично тому, как это делает mail, но в ряде случаев работает надежнее. Использование аналогично mail: sendmail <адрес>. 2.4. Утилита screen Этот подраздел не является обязательным для освоения и может быть опущен. Утилита screen, входящая в состав ОС, позволяет существенно облегчить работу пользователя в том случае, если необходимо эту работу прервать, а затем возобновить с того же места, либо если какая-то программа, запущенная от имени пользователя, должна продолжать работу в то время, как пользователь уже вышел из системы. После запуска (осуществляется командой screen) выводится обычное приглашение системы, позволяющее работать обычным образом. Если в процессе работы нажать комбинацию клавиш ctrl-a-d, произойдет «логическое отключение» процесса, после чего пользователь может выйти из системы, а запущенный в screen-е процесс останется в работающем состоянии. Впоследствии пользователь, войдя снова в систему, может командой screen –r снова открыть начатый сеанс. Таким образом, сеанс, прерванный «на середине», возобновляется с того места, на котором прерван (либо, если была оставлена работающая программа – на том, где завершила работу эта программа). Эта утилита активно используется как аналог режима hibernate в windows либо для работы специальных программ, работающих длительное время и выводящих информацию в процессе работы. 2.5. Служба FTP Протокол FTP (File Transfer Protocol) и основанная на нем служба являются историческими предшественниками протокола HTTP и службы WWW соответственно. Они имеют достаточно широкое распространение и по сей день в тех случаях, когда требуется только передача файлов. Со стороны сервера поддержка службы FTP осуществляется специальной программой – FTPсервером. Для доступа к этой службе существует множество различных программ, в частности FTP поддерживает Internet Explorer (при этом он позволяет только скачивать файлы) и Far (обеспечивает полноценный доступ). В локальных сетях FTP применяется очень часто как средство для обмена файлами. Например, администратор сети может выложить на FTP-сервер программное обеспечение или какие-то документы. Сами пользователи также могут обмениваться документами через FTP, поскольку такой обмен, в отличие от web-технологий, не требует никаких знаний. Для доступа к FTP-серверу необходимо знать его ip-адрес, логин и пароль. В данном случае это ipадрес сервера, логин и пароль клиента. Затем следует открыть FTP-сессию (см. ниже) После этого с файлами и каталогами, доступными на сервере, можно работать точно так же, как и с Лаб. раб. 5. Основные приемы работы с Unix. Файл D:\446991969.doc С. 7 из 8 локальными. Для завершения работы не требуется никаких действий: по истечении определенного интервала (5 – 15 минут) сервер сам закрывает неактивные соединения. Открытие сессии (создание соединения по TotalCommander FTP-протоколу) в файловых оболочках FAR и 1. Инициировать работу с FTP-протоколом: - в FAR – нажать Alt-F1, выбрать «FTP» и нажать shift-F4; - в TotalCommander – выбрать в меню пункт “FTP connection” нажать “new connection”. 2. В появившемся окне задать: - имя сессии (произвольно); - ip-адрес сервера (host name); - логин (user name); - пароль; - выбрать опцию passive mode. 3. После установления соединения вы попадаете в свой home-каталог. Часть 3. Понятие о работе WEB-сервера и размещении и отладке WEBприложений На серверной машине в ауд. 115 установлена ОС Unix FreeBSD 6.0, WEB-сервер Apache и интерпретатор PHP. WEB-сервер запускается автоматически. Число возможных клиентов-пользователей равно числу студентов. Логин совпадает с паролем и представляет собой строку os<номер группы><номер студента по списку> (т.е. os1_1, os1_2, … для группы 1 и т.д.). Во избежание путаницы на каждой машине должен использоваться свой логин! В home-каталоге каждого клиента создан подкаталог public_html (все буквы малые), имя которого указано в файле конфигурации WEB-сервера как имя стартового каталога для размещения WEBприложения (сайта) клиента. Если такого подкаталога нет, его надо создать (например, с помощью файловой оболочки). В этом каталоге следует размещать разрабатываемое приложение. Имя стартовой страницы приложения берется стандартным: index.htm. Тогда для доступа к своему приложению клиенту следует набирать такой адрес (URL): http://192.168.0.1/~логин/ (например, http://192.168.0.254/~os1_8/ ). Указания к работе Первая часть работы в общем случае может быть выполнена как в автономном режиме (когда система Unix установлена на автономном компьютере), так и на клиентской машине в сетевом режиме. В нашем случае ОС установлена на одной – серверной – машине; остальные машины являются клиентскими в рамках локальной сети дисплейного класса. Поэтому для выполнения задания в дисплейном классе прежде всего необходимо установление связи с сервером: обеспечение удаленного доступа посредством протокола telnet согласно п. 2.1 описания работы. Подразделы 1.4. (редактор VI) и 2.4. (утилита screen) не являются обязательным для освоения и могут быть опущены. Задание по 1 и 2 части, выполняемое на занятии 1. Войти в систему (логин и пароль соответствуют номеру машины-клиента, ip-адрес сервера следует узнать у преподавателя). 2. В своем домашнем каталоге создать несложную структуру каталогов (например, каталог А с подкаталогами А1 и А2; в подкаталоге А1 создать текстовые файлы file1.txt и file2.txt). 3. Освоить команды: mkdir, chdir, ls, rm, pwd, passwd в различных режимах (в частности, ls в «коротком» (“ls”) и «длинном» (“ls -la”) вариантах). 4. Назначить одному из файлов права. Убрать право “x”, назначить “w”. Лаб. раб. 5. Основные приемы работы с Unix. Файл D:\446991969.doc С. 8 из 8 5. Отработать совместное использование каталогов: одному из пользователей зайти в домашний каталог другого, просмотреть созданную им структуру. Попытаться редактировать файлы. 6. Удалить созданную структуру. 7. Просмотреть список процессов. 8. Получить справку по командам ls, chmod 9. С помощью команды Windows ipconfig (используется из командной строки windows) узнать ipадреса локальных машин. Проверить, используя PING, проходят ли пакеты между ними. С помощью traceroute (в версии Windows команда называется tracert, используется так же) определить, каким образом – с участием сервера или без него – ходят пакеты между машинами. 10. Обменяться сообщениями электронной почты, используя mail и sendmail 11. Завершить сеанс работы. Задание по 3 части, выполняемое на занятии 1. Создать в автономном режиме в произвольном каталоге простейшую HTML-страницу index.htm, например, такую: <html> <head> <title>Главная страница</title> </head> <body> Это тест </body> </html> 2. Проверить, как эта страница отображается в броузере. 3. Установить FTP-соединение (см. п. 2.5). 4. Проверить наличие каталога public_html и создать его в случае отсутствия (в той же оболочке, нажатием F7). 5. Закачать страницу в каталог public_html. Фактически это размещение приложения (сайта) на сервере. 6. В браузере задать URL приложения и убедиться, что оно функционирует, как может. 7. Посмотреть, какие права назначены файлу по умолчанию. Отчет По каждому из пунктов задания каждой части работы оформляется отдельный пункт отчета, отражающий проделанную работу и полученный результат. Так, отчет по 1 и 2 частям работы должен включать в себя: - дерево каталогов, - описание сеанса по его созданию, - пример выполнения каждого из пунктов задания – введенную команду и полученный результат. В отчете по 3 части следует привести имя и содержимое файла с HTML-кодом и описание действий с результатами согласно заданию.