Инструментальные средства обеспечения безопасности

Cygwin

Разбить на страницы
Показывать лекцию целиком

VMware - прекрасное средство для работы нескольких операционных систем (или виртуальных машин) в рамках одной операционной системы (Windows или Linux), но для тех кто хотел бы получить лучшее для Windows и Unix, Cygwin может оказаться более простой и дешевой альтернативой. Cygwin - свободно распространяемая подсистема Unix, которая может выполняться поверх Windows. Cygwin использует единственную динамически загружаемую библиотеку (DLL) для реализации подсистемы, что позволяет разработчикам создавать Cygwin -подобные Unix-программы, которые используют эту библиотеку для работы под Windows. Вообразите себе выполнение таких Unix-фаворитов, как vi, bash, GCC, tar, sed и других, не прерывая работы Windows. Пока некоторые фирмы занимаются портированием этих приложений для работы под Windows, Cygwin делает процесс переноса программ невероятно простым.

Для системных администраторов и сетевых инженеров Cygwin является самой дешевой альтернативой для использования наиболее важных Unix-утилит для анализа систем ( md5sum, strace, strings и т.д.) на Windows-машине.

Загрузка и инсталляция

/ и скачать инсталляционную программу. Инсталляционная программа загружает файлы Cygwin с выбранного вами зеркала и устанавливает их в заданное по умолчанию место. Вы можете выбирать между использованием протоколов HTTP, FTP или Rsync.

Вам придется ответить на несколько вопросов вроде того, хотите вы или нет, чтобы Cygwin приложения генерировали текстовые файлы в формате MS-DOS или Unix. Текстовые файлы DOS содержат в конце строки символы конца строки и переход на новую строку, в то время как Unix-файлы содержат только конец строки; если вы видите символы ^M в конце текстовых файлов, то весьма вероятно, что они были перенесены из одной системы в другую (из Unix в Windows ) в двоичном формате, а не в ASCII-кодах. Если вы работаете с многопользовательской Windows-машиной, вас также спросят, хотите ли вы установить приложение только для одного пользователя или для всех, работающих в этой системе.

Инсталлятор .

(рис 5.1) Выбор пакетов для установки - просмотр категорий

Вы можете использовать опции Prev, Curr и Exp, чтобы указать инсталлятору автоматически устанавливать старую, текущую или экспериментальную версии программного обеспечения. Будьте осторожны: если вы пролистали список и выбрали приложения, которые необходимо установить, а затем изменили значение этого параметра (щелкнули на одной из кнопок) ваш предыдущий выбор пропадет!

Наилучшим может быть выбор кнопки View. Эта кнопка переключает режимы просмотра доступных пакетов. Развернутый режим просмотра, возможно, окажется более простым в работе, его внешний вид представлен на рис 5.2.

В режиме полного просмотра вы можете увидеть все доступные для установки пакеты в алфавитном порядке. Щелкнув на фигурной стрелке слева от наименования пакета, вы сможете просмотреть все опции для этого пакета. Вы можете выбрать для инсталляции исходные тексты пакета (и откомпилировать их позже самостоятельно), или сделать выбор между одной или другой двоичными версиями пакета для установки. Если вы устанавливаете двоичную версию пакета, но по каким-либо причинам хотите загрузить соответствующие исходные тексты, отметьте значок Src.

(рис 5.2) Выбор пакетов для установки - полный просмотрСовет. Если вы не выбрали пакет для установки, но позднее передумали, вы можете просто вернуться в программу установки Cygwin ; она загрузит и установит только те пакеты, которые вы добавили в список в этот раз.

После того как вы выбрали пакеты для установки, Cygwin загрузит и установит их. Скорость установки будет зависеть от количества выбранных пакетов и скорости используемого Internet-соединения. Когда вы закончите, неплохо будет создать на рабочем столе значок Cygwin для запуска.

Реализация

Щелкните дважды на значке Cygwin. Вы увидите окно, похожее на то, что представлено ниже.

Скрипт cygwin.bat выполняется из командной строки DOS, устанавливает среду Cygwin и запускает интерпретатор bash под Windows. Cygwin прекрасно настраивает переменные Unix-окружения в соответствии с переменными окружения Windows. Например, на своей машине, я вошел в Windows, как пользователь bjohnson. Когда я запускаю Cygwin, он по умолчанию загружается под управлением пользователя bjohnson.

Ниже представлено окно с некоторыми стандартными Unix-командами в Cygwin.

В зависимости от установленных вами пакетов, вы легко можете запускать соответствующие Unix-утилиты. Если вы пользователь Unix, вам, несомненно, хотелось бы, чтобы в Windows была команда ps для просмотра выполняемых в настоящее время процессов без использования Task Manager. Если вы используете флаг -aW, вы сможете увидеть процессы Windows, как и любые запущенные процессы Cygwin. Ниже представлен список Windows-процессов, доступный в результате выполнения Cygwin команды ( ps -aW | less ).

PID PPID    PGID    WINPID  TTY UID STIME   COMMAND
3193213 0   0   4291774083  ?   0   Dec 31  C:\WINDOWS\SYSTEM\KERNEL32.DLL
63753   0   0   4294903543  ?   0   Dec 31  C:\WINDOWS\SYSTEM\MSGSRV32.EXE
60569   0   0   4294906727  ?   0   Dec 31  C:\WINDOWS\SYSTEM\MPREXE.EXE
77349   0   0   4294889947  ?   0   Dec 31  C:\WINDOWS\SYSTEM\RPCSS.EXE
196093  0   0   4294771203  ?   0   Dec 31  C:\WINDOWS\SYSTEM\mmtask.tsk
191237  0   0   4294776059  ?   0   Dec 31  C:\WINDOWS\EXPLORER.EXE
237709  0   0   4294729587  ?   0   Dec 31  C:\WINDOWS\TASKMON.EXE
230713  0   0   4294736583  ?   0   Dec 31  C:\WINDOWS\SYSTEM\SYSTRAY.EXE
217533  0   0   4294749763  ?   0   Dec 31  C:\PROGRAMFILES\DIRECTCD\DIRECTCD.EXE

Структура директорий и полномочия доступа к файлам

Cygwin монтирует ваши локальные диски в директории /cygdrive. Сюда входят разделы жесткого диска, дисководы, устройства для чтения компакт-дисков, устройства для чтения ZIP. Выполним команду df на моей машине. Получим структуру, подобную той, что приведена ниже.

Bjohnson@BRADMAN 
$ df
Filesystem  1k-blocks   Used    Available   Use%    Mounted on
C:\cygwin\bin   2096832 0   2096832 0%  /usr/bin
C:\cygwin\lib   2096832 0   2096832 0%  /usr/lib
C:\cygwin   2096832 0   2096832 0%  /
c:  2096832 0   2096832 0%  /cygdrive/c
d:  670496  670496  0   100%    /cygdrive/d

После установки Cygwin я указал инсталлятору сохранить файлы в директорию C:\cygwin\. Cygwin использовал эту директории в качестве корневой точки монтирования файловой системы. Он смонтировал C:\cygwin\ bin на /usr/bin и C:\cygwin\lib на /usr/lib. В директории /usr/bin, /bin, и /usr/local/bin были добавлены переменные окружения Cygwin (но не Windows). Директории из среды окружения Windows были импортированы в среду Cygwin, чтобы иметь к ним доступ.

Cygwin также использует разумную систему полномочий доступа для Unix-файлов. Но что это может означать для всех ваших Windows-файлов? Кто владелец файлов, и какие полномочия установлены по умолчанию? Запустим команду ls -al на несколько Windows-файлов, чтобы получить ответ.

bjohnson@BRADMAN /cygdrive/c/cyginstall
$ ls -al
total 273
drwxr-xr-x  1   bjohnson    unknown 0   Mar 13 17:48 .
drwxr-xr-x  1   bjohnson    unknown 0   Dec 31 1969 ..
drwxr-xr-x  1   bjohnson    unknown 0   Mar 13 18:06 contrib
drwxr-xr-x  1   bjohnson    unknown 0   Mar 13 18:03 latest
-rwxr-xr-x  1   bjohnson    unknown 218112  Mar 13 17:48 setup.exe
-rw-r--r--  1   bjohnson    unknown 60607   Mar 13 17:54 setup.ini

Cygwin попытается получить информацию о владельцах файла (пользователе и группе) из Windows. Пока я использовал машину под управлением Windows 98 с одним пользователем, все файлы принадлежали мне (bjohnson) с указанием в качестве группы "unknown". Это устанавливало полномочия для всех Windows-директорий и исполняемых файлов на значение 755 (чтение и выполнение для всех, запись только для владельца) и устанавливала всем файлам Windows полномочия 644 (чтение для всех, запись только для владельца). Выполнение команды chmod для Windows-файлов игнорируется.

Совет. и к ).

Выполнение приложений

То, что вы сможете делать с использованием Cygwin, зависит от того, какие пакеты вы там установите. Познакомимся с некоторыми наиболее интересными примерами.

Выполнение Windows приложений

Вы можете не только выполнять Unix/Cygwin-приложения, но и запускать родные Windows-приложения из командной строки, как это показано ниже.

Кое-что вы можете делать и с графическими приложениями.

Создание программ в Windows

Что можно сделать еще? Если вы установите GCC, GDB, make, и Binutils, то сможете получить бесплатную Windows-среду для разработки C/C++ приложений. Это конечно не Microsoft's Visual Studio, но зато и не так дорого. Вот пример компиляции и выполнения простой программы на C.

Выполнение Perl-скриптов

Хотя Perl-программы доступны для Windows, многие из них не бесплатны. Cygwin дает возможность свободного исполнения Perl-скриптов на вашей Windows-машине. Чтобы показать, что это возможно, я написал пример скрипта, который берет числа (по любому основанию от 2 до 16) и преобразует их в числа с другим основанием (от 2 до 16). В этом примере я преобразовал число 435 в десятичной системе счисления в шестнадцатеричную систему.

Полезные Unix-утилиты

Теперь у вас есть доступ к миллионам полезных Unix-утилит внутри Windows, многие из которых могут быть полезны системным администраторам или специалистам по сетевой безопасности. Вот лишь некоторые из них.

  • grep. Поиск файлов на основе регулярных выражений.
  • sed. Потоковый редактор, удобный для выполнения операций поиска и замены.
  • strings. Извлечение отображаемых ASCII строк из двоичных файлов; хорош для документов Word в случае, если у вас не установлен MS Office.
  • strace. Трассировка системных вызовов и сигналов; показывает, какие системные вызовы и сигналы порождает и получает приложение.
  • md5sum. Обеспечивает проверку контрольной суммы файла для обеспечения гарантии авторизации и защиты от подделки.
  • diff. Сравнивает два файла.
  • patch. Использует результаты работы команды diff, чтобы сделать файл file1 таким же, как file2.
  • , чтобы найти другие Cygwin -пакеты, доступные для загрузки. Вы можете найти такие популярные приложения, как Apache, smbclient (упоминавшийся в лекции "Системные средства с открытым программным кодом: основы"), и даже утилиты записи CD-дисков (включая mkisofs, упоминавшуюся в лекции "VMware", которая позволяет создавать ISO-образы компакт дисков).

    XFree86 для Cygwin

    Вы можете даже запустить / и выбрать зеркало для скачивания двоичных файлов X Window. Вы можете использовать NcFTP под Cygwin (если он установлен) для доступа к зеркалу и перехода к директории cygwin/xfree/binaries/4.20 и загрузки всех файлов во временную директорию (мы используем /home/bjohnson/xfree/ ). Как только загрузка завершится, вам понадобится распаковать программу, которую вы скачали, а затем выполнить скрипт Xinstall.sh. Ниже приведены команды подготовки к инсталляции XFree86 для Cygwin.

    bjohnson@BRADMAN ~/xfree$ ls
    FILES       Xetc.tgz    Xfsrv.tgz   Xnest.tgz   extract.exe.gz
    Install     Xf100.tgz   Xhtml.tgz   Xprog.tgz   gnu-tar
    README  Xfcyr.tgz   Xinstall.sh Xprt.tgz    md5.sum
    RELNOTES    Xfenc.tgz   Xjdoc.tgz   Xps.tgz startup-scripts.tgz
    Xbin.tgz    Xfnts.tgz   Xlib.tgz    Xvfb.tgz
    Xdoc.tgz    Xfscl.tgz   Xman.tgz    Xxserv.tgz
    
    bjohnson@BRADMAN ~/xfree
    $ gunzip extract.exe.gz
    
    bjohnson@BRADMAN ~/xfree
    $ cp extract.exe /bin/
    
    bjohnson@BRADMAN ~/xfree
    $ ./Xinstall.sh

    После запроса подтверждения XFree86 начнет распаковывать требуемые файлы.

    Installing the mandatory parts of the binary distribution
    == Extracting /home/bjohnson/xfree/Xbin.tgz ==
    == Extracting /home/bjohnson/xfree/Xlib.tgz ==
    == Extracting /home/bjohnson/xfree/Xman.tgz ==

    В заключение вас спросят, хотите ли вы установить дополнительные компоненты. Если вы не уверены, нужно вам это или нет, выбирайте значения по умолчанию (в скобках).

    Checking for optional components to install ...
    Do you want to install Xfsrv.tar.gz (font server) (y/n) [y]
    == Extracting /home/bjohnson/xfree/Xfsrv.tar.gz ==
    Do you want to install Xnest.tar.gz (Nested X server) (y/n) [y]
    == Extracting/home/bjohnson/xfree/Xnest.tar.gz ==

    После завершения инсталляции необходимо разархивировать в /usr/X11R6/bin файл startup-scripts.tgz из директории, в которую загружались файлы.

    bjohnson@BRADMAN ~/xfree
    $ cd /usr/X11R6/bin/
    
    bjohnson@BRADMAN /usr/X11R6/bin/
    $ tar zxf /home/bjohnson/xfree/startup-scripts.tgz

    Вы закончили! Теперь наберите в командной строке .

    Вы сможете найти множество X Window-программ, которые устанавливаются вместе с /).

    (рис 5.3) Windows под Cygwin

    Пример из жизни. Использование Unix в среде Windows

    Кен работает в компании, разрабатывающей программное обеспечение. Когда он учился в колледже, то преимущественно пользовался Solaris и IRIX, а в этой компании используются только станции Windows 2000. Кену удалось убедить системных администраторов разрешить ему инсталлировать Cygwin, чтобы он мог использовать некоторые полезные средства Unix: bash, diff, sleep, vi, lynx, grep, less, md5sum и NcFTP. Кроме того, он использовал утилиты Cygwin cvs и sshd, чтобы установить безопасное хранилище Concurrent Versions System ( CVS ) для контроля версий кода, над которым он и его отдел работают. Он также использует Rsync, чтобы следить за хранилищем CVS на другом сервере, на случай, если что-то произойдет с его машиной. Интерпретатор Cygwin's Perl и операционная оболочка GNU также дают Кену возможность компилировать Unix-код <Cygwin-ized> в системе Windows. Одно из увлечений Кена - сетевая безопасность. Он надеется взять Unix-утилиты, такие, как nmap, и использовать подсистему Cygwin, чтобы иметь возможность работать с ними в Windows.

    Кен понимает, что, скорее всего, системы Windows будут доминировать в корпоративной рабочей среде. Помогая в разработке многих Unix-приложений, которые также могут запускаться в Windows с помощью Cygwin, он надеется построить мост между двумя сообществами так, чтобы средства Windows и Unix могли безболезненно работать в комбинации в одной системе (и без дополнительных затрат).

    Страницы:

    VMware - прекрасное средство для работы нескольких операционных систем (или виртуальных машин) в рамках одной операционной системы (Windows или Linux), но для тех кто хотел бы получить лучшее для Windows и Unix, Cygwin может оказаться более простой и дешевой альтернативой. Cygwin - свободно распространяемая подсистема Unix, которая может выполняться поверх Windows. Cygwin использует единственную динамически загружаемую библиотеку (DLL) для реализации подсистемы, что позволяет разработчикам создавать Cygwin -подобные Unix-программы, которые используют эту библиотеку для работы под Windows. Вообразите себе выполнение таких Unix-фаворитов, как vi, bash, GCC, tar, sed и других, не прерывая работы Windows. Пока некоторые фирмы занимаются портированием этих приложений для работы под Windows, Cygwin делает процесс переноса программ невероятно простым.

    Для системных администраторов и сетевых инженеров Cygwin является самой дешевой альтернативой для использования наиболее важных Unix-утилит для анализа систем ( md5sum, strace, strings и т.д.) на Windows-машине.

    Загрузка и инсталляция

    / и скачать инсталляционную программу. Инсталляционная программа загружает файлы Cygwin с выбранного вами зеркала и устанавливает их в заданное по умолчанию место. Вы можете выбирать между использованием протоколов HTTP, FTP или Rsync.

    Вам придется ответить на несколько вопросов вроде того, хотите вы или нет, чтобы Cygwin приложения генерировали текстовые файлы в формате MS-DOS или Unix. Текстовые файлы DOS содержат в конце строки символы конца строки и переход на новую строку, в то время как Unix-файлы содержат только конец строки; если вы видите символы ^M в конце текстовых файлов, то весьма вероятно, что они были перенесены из одной системы в другую (из Unix в Windows ) в двоичном формате, а не в ASCII-кодах. Если вы работаете с многопользовательской Windows-машиной, вас также спросят, хотите ли вы установить приложение только для одного пользователя или для всех, работающих в этой системе.

    Инсталлятор .

    (рис 5.1) Выбор пакетов для установки - просмотр категорий

    Вы можете использовать опции Prev, Curr и Exp, чтобы указать инсталлятору автоматически устанавливать старую, текущую или экспериментальную версии программного обеспечения. Будьте осторожны: если вы пролистали список и выбрали приложения, которые необходимо установить, а затем изменили значение этого параметра (щелкнули на одной из кнопок) ваш предыдущий выбор пропадет!

    Наилучшим может быть выбор кнопки View. Эта кнопка переключает режимы просмотра доступных пакетов. Развернутый режим просмотра, возможно, окажется более простым в работе, его внешний вид представлен на рис 5.2.

    В режиме полного просмотра вы можете увидеть все доступные для установки пакеты в алфавитном порядке. Щелкнув на фигурной стрелке слева от наименования пакета, вы сможете просмотреть все опции для этого пакета. Вы можете выбрать для инсталляции исходные тексты пакета (и откомпилировать их позже самостоятельно), или сделать выбор между одной или другой двоичными версиями пакета для установки. Если вы устанавливаете двоичную версию пакета, но по каким-либо причинам хотите загрузить соответствующие исходные тексты, отметьте значок Src.

    (рис 5.2) Выбор пакетов для установки - полный просмотрСовет. Если вы не выбрали пакет для установки, но позднее передумали, вы можете просто вернуться в программу установки Cygwin ; она загрузит и установит только те пакеты, которые вы добавили в список в этот раз.

    После того как вы выбрали пакеты для установки, Cygwin загрузит и установит их. Скорость установки будет зависеть от количества выбранных пакетов и скорости используемого Internet-соединения. Когда вы закончите, неплохо будет создать на рабочем столе значок Cygwin для запуска.

    Реализация

    Щелкните дважды на значке Cygwin. Вы увидите окно, похожее на то, что представлено ниже.

    Скрипт cygwin.bat выполняется из командной строки DOS, устанавливает среду Cygwin и запускает интерпретатор bash под Windows. Cygwin прекрасно настраивает переменные Unix-окружения в соответствии с переменными окружения Windows. Например, на своей машине, я вошел в Windows, как пользователь bjohnson. Когда я запускаю Cygwin, он по умолчанию загружается под управлением пользователя bjohnson.

    Ниже представлено окно с некоторыми стандартными Unix-командами в Cygwin.

    В зависимости от установленных вами пакетов, вы легко можете запускать соответствующие Unix-утилиты. Если вы пользователь Unix, вам, несомненно, хотелось бы, чтобы в Windows была команда ps для просмотра выполняемых в настоящее время процессов без использования Task Manager. Если вы используете флаг -aW, вы сможете увидеть процессы Windows, как и любые запущенные процессы Cygwin. Ниже представлен список Windows-процессов, доступный в результате выполнения Cygwin команды ( ps -aW | less ).

    PID PPID    PGID    WINPID  TTY UID STIME   COMMAND
    3193213 0   0   4291774083  ?   0   Dec 31  C:\WINDOWS\SYSTEM\KERNEL32.DLL
    63753   0   0   4294903543  ?   0   Dec 31  C:\WINDOWS\SYSTEM\MSGSRV32.EXE
    60569   0   0   4294906727  ?   0   Dec 31  C:\WINDOWS\SYSTEM\MPREXE.EXE
    77349   0   0   4294889947  ?   0   Dec 31  C:\WINDOWS\SYSTEM\RPCSS.EXE
    196093  0   0   4294771203  ?   0   Dec 31  C:\WINDOWS\SYSTEM\mmtask.tsk
    191237  0   0   4294776059  ?   0   Dec 31  C:\WINDOWS\EXPLORER.EXE
    237709  0   0   4294729587  ?   0   Dec 31  C:\WINDOWS\TASKMON.EXE
    230713  0   0   4294736583  ?   0   Dec 31  C:\WINDOWS\SYSTEM\SYSTRAY.EXE
    217533  0   0   4294749763  ?   0   Dec 31  C:\PROGRAMFILES\DIRECTCD\DIRECTCD.EXE

    Структура директорий и полномочия доступа к файлам

    Cygwin монтирует ваши локальные диски в директории /cygdrive. Сюда входят разделы жесткого диска, дисководы, устройства для чтения компакт-дисков, устройства для чтения ZIP. Выполним команду df на моей машине. Получим структуру, подобную той, что приведена ниже.

    Bjohnson@BRADMAN 
    $ df
    Filesystem  1k-blocks   Used    Available   Use%    Mounted on
    C:\cygwin\bin   2096832 0   2096832 0%  /usr/bin
    C:\cygwin\lib   2096832 0   2096832 0%  /usr/lib
    C:\cygwin   2096832 0   2096832 0%  /
    c:  2096832 0   2096832 0%  /cygdrive/c
    d:  670496  670496  0   100%    /cygdrive/d

    После установки Cygwin я указал инсталлятору сохранить файлы в директорию C:\cygwin\. Cygwin использовал эту директории в качестве корневой точки монтирования файловой системы. Он смонтировал C:\cygwin\ bin на /usr/bin и C:\cygwin\lib на /usr/lib. В директории /usr/bin, /bin, и /usr/local/bin были добавлены переменные окружения Cygwin (но не Windows). Директории из среды окружения Windows были импортированы в среду Cygwin, чтобы иметь к ним доступ.

    Cygwin также использует разумную систему полномочий доступа для Unix-файлов. Но что это может означать для всех ваших Windows-файлов? Кто владелец файлов, и какие полномочия установлены по умолчанию? Запустим команду ls -al на несколько Windows-файлов, чтобы получить ответ.

    bjohnson@BRADMAN /cygdrive/c/cyginstall
    $ ls -al
    total 273
    drwxr-xr-x  1   bjohnson    unknown 0   Mar 13 17:48 .
    drwxr-xr-x  1   bjohnson    unknown 0   Dec 31 1969 ..
    drwxr-xr-x  1   bjohnson    unknown 0   Mar 13 18:06 contrib
    drwxr-xr-x  1   bjohnson    unknown 0   Mar 13 18:03 latest
    -rwxr-xr-x  1   bjohnson    unknown 218112  Mar 13 17:48 setup.exe
    -rw-r--r--  1   bjohnson    unknown 60607   Mar 13 17:54 setup.ini

    Cygwin попытается получить информацию о владельцах файла (пользователе и группе) из Windows. Пока я использовал машину под управлением Windows 98 с одним пользователем, все файлы принадлежали мне (bjohnson) с указанием в качестве группы "unknown". Это устанавливало полномочия для всех Windows-директорий и исполняемых файлов на значение 755 (чтение и выполнение для всех, запись только для владельца) и устанавливала всем файлам Windows полномочия 644 (чтение для всех, запись только для владельца). Выполнение команды chmod для Windows-файлов игнорируется.

    Совет. и к ).

    Выполнение приложений

    То, что вы сможете делать с использованием Cygwin, зависит от того, какие пакеты вы там установите. Познакомимся с некоторыми наиболее интересными примерами.

    Выполнение Windows приложений

    Вы можете не только выполнять Unix/Cygwin-приложения, но и запускать родные Windows-приложения из командной строки, как это показано ниже.

    Кое-что вы можете делать и с графическими приложениями.

    Создание программ в Windows

    Что можно сделать еще? Если вы установите GCC, GDB, make, и Binutils, то сможете получить бесплатную Windows-среду для разработки C/C++ приложений. Это конечно не Microsoft's Visual Studio, но зато и не так дорого. Вот пример компиляции и выполнения простой программы на C.

    Выполнение Perl-скриптов

    Хотя Perl-программы доступны для Windows, многие из них не бесплатны. Cygwin дает возможность свободного исполнения Perl-скриптов на вашей Windows-машине. Чтобы показать, что это возможно, я написал пример скрипта, который берет числа (по любому основанию от 2 до 16) и преобразует их в числа с другим основанием (от 2 до 16). В этом примере я преобразовал число 435 в десятичной системе счисления в шестнадцатеричную систему.

    Полезные Unix-утилиты

    Теперь у вас есть доступ к миллионам полезных Unix-утилит внутри Windows, многие из которых могут быть полезны системным администраторам или специалистам по сетевой безопасности. Вот лишь некоторые из них.

  • grep. Поиск файлов на основе регулярных выражений.
  • sed. Потоковый редактор, удобный для выполнения операций поиска и замены.
  • strings. Извлечение отображаемых ASCII строк из двоичных файлов; хорош для документов Word в случае, если у вас не установлен MS Office.
  • strace. Трассировка системных вызовов и сигналов; показывает, какие системные вызовы и сигналы порождает и получает приложение.
  • md5sum. Обеспечивает проверку контрольной суммы файла для обеспечения гарантии авторизации и защиты от подделки.
  • diff. Сравнивает два файла.
  • patch. Использует результаты работы команды diff, чтобы сделать файл file1 таким же, как file2.
  • , чтобы найти другие Cygwin -пакеты, доступные для загрузки. Вы можете найти такие популярные приложения, как Apache, smbclient (упоминавшийся в лекции "Системные средства с открытым программным кодом: основы"), и даже утилиты записи CD-дисков (включая mkisofs, упоминавшуюся в лекции "VMware", которая позволяет создавать ISO-образы компакт дисков).

    XFree86 для Cygwin

    Вы можете даже запустить / и выбрать зеркало для скачивания двоичных файлов X Window. Вы можете использовать NcFTP под Cygwin (если он установлен) для доступа к зеркалу и перехода к директории cygwin/xfree/binaries/4.20 и загрузки всех файлов во временную директорию (мы используем /home/bjohnson/xfree/ ). Как только загрузка завершится, вам понадобится распаковать программу, которую вы скачали, а затем выполнить скрипт Xinstall.sh. Ниже приведены команды подготовки к инсталляции XFree86 для Cygwin.

    bjohnson@BRADMAN ~/xfree$ ls
    FILES       Xetc.tgz    Xfsrv.tgz   Xnest.tgz   extract.exe.gz
    Install     Xf100.tgz   Xhtml.tgz   Xprog.tgz   gnu-tar
    README  Xfcyr.tgz   Xinstall.sh Xprt.tgz    md5.sum
    RELNOTES    Xfenc.tgz   Xjdoc.tgz   Xps.tgz startup-scripts.tgz
    Xbin.tgz    Xfnts.tgz   Xlib.tgz    Xvfb.tgz
    Xdoc.tgz    Xfscl.tgz   Xman.tgz    Xxserv.tgz
    
    bjohnson@BRADMAN ~/xfree
    $ gunzip extract.exe.gz
    
    bjohnson@BRADMAN ~/xfree
    $ cp extract.exe /bin/
    
    bjohnson@BRADMAN ~/xfree
    $ ./Xinstall.sh

    После запроса подтверждения XFree86 начнет распаковывать требуемые файлы.

    Installing the mandatory parts of the binary distribution
    == Extracting /home/bjohnson/xfree/Xbin.tgz ==
    == Extracting /home/bjohnson/xfree/Xlib.tgz ==
    == Extracting /home/bjohnson/xfree/Xman.tgz ==

    В заключение вас спросят, хотите ли вы установить дополнительные компоненты. Если вы не уверены, нужно вам это или нет, выбирайте значения по умолчанию (в скобках).

    Checking for optional components to install ...
    Do you want to install Xfsrv.tar.gz (font server) (y/n) [y]
    == Extracting /home/bjohnson/xfree/Xfsrv.tar.gz ==
    Do you want to install Xnest.tar.gz (Nested X server) (y/n) [y]
    == Extracting/home/bjohnson/xfree/Xnest.tar.gz ==

    После завершения инсталляции необходимо разархивировать в /usr/X11R6/bin файл startup-scripts.tgz из директории, в которую загружались файлы.

    bjohnson@BRADMAN ~/xfree
    $ cd /usr/X11R6/bin/
    
    bjohnson@BRADMAN /usr/X11R6/bin/
    $ tar zxf /home/bjohnson/xfree/startup-scripts.tgz

    Вы закончили! Теперь наберите в командной строке .

    Вы сможете найти множество X Window-программ, которые устанавливаются вместе с /).

    (рис 5.3) Windows под Cygwin

    Пример из жизни. Использование Unix в среде Windows

    Кен работает в компании, разрабатывающей программное обеспечение. Когда он учился в колледже, то преимущественно пользовался Solaris и IRIX, а в этой компании используются только станции Windows 2000. Кену удалось убедить системных администраторов разрешить ему инсталлировать Cygwin, чтобы он мог использовать некоторые полезные средства Unix: bash, diff, sleep, vi, lynx, grep, less, md5sum и NcFTP. Кроме того, он использовал утилиты Cygwin cvs и sshd, чтобы установить безопасное хранилище Concurrent Versions System ( CVS ) для контроля версий кода, над которым он и его отдел работают. Он также использует Rsync, чтобы следить за хранилищем CVS на другом сервере, на случай, если что-то произойдет с его машиной. Интерпретатор Cygwin's Perl и операционная оболочка GNU также дают Кену возможность компилировать Unix-код <Cygwin-ized> в системе Windows. Одно из увлечений Кена - сетевая безопасность. Он надеется взять Unix-утилиты, такие, как nmap, и использовать подсистему Cygwin, чтобы иметь возможность работать с ними в Windows.

    Кен понимает, что, скорее всего, системы Windows будут доминировать в корпоративной рабочей среде. Помогая в разработке многих Unix-приложений, которые также могут запускаться в Windows с помощью Cygwin, он надеется построить мост между двумя сообществами так, чтобы средства Windows и Unix могли безболезненно работать в комбинации в одной системе (и без дополнительных затрат).

    Вернуться к учебному плану