Администрирование Unix-сервера и Linux-станций. Что такое Unix (для начинающих)

Чтобы создать терминальный, файловый (FTP) или почтовый сервер на Linux, надо уметь работать в этой операционной системе. Иначе разобраться будет сложно. ОС не нужен мощный компьютер. Потому что она не расходует лишние ресурсы на графическое оформление. Дистрибутивы Линукса можно развернуть даже на старом ПК. Поэтому для создания различных серверов часто используют Linux или Ubuntu Server.

Об этом написано много различной литературы. Некоторые книги о Линуксе насчитывают тысячу страниц. Работать придётся через терминал и все команды вводить вручную. Но всё же вы сможете сделать небольшой Linux-сервер своими руками, который будет включать файловое хранилище, Web-сервисы и почтовый протокол.

Ubuntu Server создана на базе операционной системы Linux. Для её работы не нужен современный процессор, хорошая видеокарта или большой объём оперативной памяти. С Линукс можно развернуть сервер даже на старом ноутбуке. И в нём будут все нужные компоненты: почта, FTP, Web.

Скачать образ диска с Linux можно с сайта Ubuntu.ru. Выбирайте любую версию с Server (не Desktop!). Загрузка будет проходить через Torrent-клиент . Этот образ надо записать на болванку или флешку (с помощью LiveUSB). Также можно воспользоваться виртуальным приводом.

У Ubuntu упрощённый интерфейс. В нём нет никаких графических излишеств. Эта ОС прекрасно подходит, чтобы сделать Linux-сервер своими руками. С ней ресурсы компьютера будут использоваться для нужд домена. Ведь ей для работы нужно совсем немного.

Её установка проходит так:

  • Выберите язык и регион, в котором проживаете.
  • Придумайте имя администратора. Оно используется для управления сервером.
  • Также задайте имя пользователя в поле «Username for your account». Под этим аккаунтом вы будете общаться с техподдержкой Ubuntu.

Указываем имя пользователя в Ubuntu

  • Введите пароль. Подтвердите его.

Вводим пароль учетной записи

  • Укажите домен, если он есть. На нём будут находиться все сервисы: файловый (FTP), почтовый, хостинг для сайтов и так далее.
  • Подождите, пока установится система.
  • После этого она предложит дополнительные компоненты.

Вот список того, что необходимо для сервера Linux и его полноценной работы:

  • Open SSh. Используется для удалённого администрирования. Пригодится, если вы решите управлять сервисом с другого компьютера. Тогда на ПК с Линуксом можно будет отключить монитор и видеоадаптер.
  • LAMP. Комплекс утилит Linux, который включает Apache (Web-сервер). MySQL (базы данных) и PHP (язык программирования для CMS). Эти компоненты нужны для создания управляющего интерфейса.
  • Samba file server. Позволяет настроить обмен файлами между компьютерами. Если вам нужен FTP-сервер, выберите этот пункт.
  • Virtual Machine host. Устанавливайте, если собираетесь пользоваться возможностями виртуализации.
  • Print server. Сетевые принтеры.
  • DNS server. Система доменных имён. С ней можно распознать IP-адрес по имени компьютера и наоборот.
  • Mail server. Почтовый сервер.
  • PostgreSQL database. Объектно-реляционные базы данных.

Выберите то, что вам нужно, и подтвердите установку. При первом запуске надо будет ввести логин администратора и пароль. Откроется консоль. Она похожа на командную строку Windows или интерфейс операционной системы MS DOS.

Изначально вам надо будет проверить наличие обновлений. Введите команду «Sudo apt-get update» или «Sudo apt-get upgrade» без кавычек. После апдейта можно заняться настройкой всех компонентов серверов: FTP, почтового, Веб.

Для Ubuntu существует псевдографический интерфейс - Midnight Commander. Это аналог оболочки Norton Commander, которая разработана для системы MS DOS. С таким интерфейсом легче работать - всё нагляднее, чем в консоли.

Запуск терминала Linux

В современных Linux вместо консоли используется терминал. Чтобы в него зайти:

  1. Откройте «Приложения».
  2. Нажмите «Стандартные».
  3. Там будет «Терминал».

В него можно вводить команды так же, как в Ubuntu Server.

  • Чтобы установить компоненты LAMP (если их ещё нет), надо последовательно ввести команды «sudo apt-get update», «sudo apt-get install tasksel» и «sudo tasksel install lamp-server». После каждой нажимайте Enter.
  • Чтобы загрузить Open SSh, введите «sudo apt-get install openssh-server».
  • Чтобы поставить Samba file server, напишите «sudo apt-get install samba».

При установке MySQL из пакета LAMP нужно будет задать пароль администратора, для SQL.

Локальный Web-сервер

Для создания Web у сервера должен быть свой выделенный IP. Тогда после установки LAMP по этому IP-адресу будет доступна тестовая страница Apache. Это и есть будущий Веб. В дальнейшем на него можно будет поставить FTP, базы данных, почтовый протокол. Для настройки Web-сервера:

  • Установите phpMyAdmin. Для этого в терминале или в консоли введите друг за другом введите «sudo apt-get install phpmyadmin»

  • И потом «sudo service apache2 restart».
  • Компонент загрузится. Apache будет перезагружен. Дальнейшие действия зависят от версии операционной системы.

Если у вас Ubuntu 13.1 и выше, используйте команды:

  1. sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
  2. sudo a2enconf phpmyadmin
  3. sudo /etc/init.d/apache2 reload

Вбивайте их последовательно друг за другом, после каждой нажимайте Enter.

В Ubuntu 16.04, нужны другие указания:

  1. sudo apt-get install php-mbstring php-gettext
  2. sudo phpenmod mcrypt
  3. sudo phpenmod mbstring
  4. sudo systemctl restart apache2

После их ввода и автоматического перезапуска службы по адресу http:///phpmyadmin будет доступен веб-интерфейс.

  • Конфигурация и данные о ней находятся в папке сервера Apache «etc/apache2/». Apache2.conf - конфигурационный файл для дистрибутива
  • В директориях «mods-available»/«sites-available» и «mods-enabled»/«sites-enabled» находятся моды и сайты.
  • В Ports.conf расписаны прослушиваемые порты.
  • Если вы добавите после команды «sudo /etc/init.d/apache2» слово «Stop», Apache приостановит работу. Если «Start» - снова запустится. Если «Restart» - перезагрузится.
  • Чтобы самостоятельно выбирать путь для сохранения сайтов, последовательно введите в терминал «sudo a2enmod rewrite» и «sudo a2enmod userdir».

Каждый раз после внесения каких-либо изменений надо перезапускать службу командой «Restart».

Почтовый сервер

Чтобы создать почтовый сервер на Линукс, у вас уже должен быть зарегистрирован домен. Также нужно иметь статический IP.

  • Установите компонент Postfix. Для этого наберите в консоли «sudo apt-get postfix».
  • Когда он загрузится, напишите команду «sudo /etc/initd/postfix start». Сервис начнёт работать.
  • В Postfix уже прописаны параметры, которые нужны для полноценной работы с протоколом SMTP. Но всё же не помешает небольшая настройка.
  • Откройте файл /etc/postfix/main.cf.
  • Найдите в нём значение «mydomain =». После знака «=» напишите имя домена.
  • Потом отыщите «myhostname =». И введите имя машины.
  • Теперь почтовый сервер может отправлять письма другим компьютерам, которые находятся с ним в одной сети. Чтобы он мог посылать корреспонденцию и на другие домены в интернете, в файле «main.cf» найдите строчку «inet_interfaces =». Поставьте после неё слово «all».
  • В переменной «mynetworks =» пропишите диапазон адресов всех компьютеров вашей подсети (например, 127.0.0.0/8).

Если служба настроена верно, и выполнены все условия (постоянный IP-адрес, зарегистрированный домен), то Server сможет принимать и отправлять корреспонденцию. Если запись MX вашего домена ссылается на ваш хост.

Чтобы посмотреть логи ресурса, используйте команду «tail -f /var/log/mail/info». Чтобы получить от него сообщение, введите «mailq».

Файловый сервер

FTP-сервер Linux может понадобиться для обмена документами и загрузки файлов. Существует несколько версий таких ресурсов: vsFTPd, Samba, proFTPd.

Подробнее остановимся на vsFTPd. Его можно установить и запустить одной командой - «sudo apt-get install vsftpd». Дальнейшие настройки зависят от ваших предпочтений и от того, какой сервис вы хотите сделать. Для изменения параметров могут понадобиться права администратора.

  1. Сразу после загрузки программы система создаёт нового пользователя и добавляет в домашнюю директорию папку, которая предназначена для работы с серверным хранилищем. Также в каталоге «etc» появляется файл «ftpusers». Туда можно добавлять пользователей, которым запрещён доступ к файлам.
  2. После установки лучше сменить директорию, в которой должны находиться файлы, в папку «var». Для этого от имени администратора напишите команду «usermod -d /var/ftp ftp && rmdir /home/ftp».
  3. Создайте новую группу пользователей. Например, «userftp». Напечатайте в консоли «addgroup userftp».
  4. Добавьте в неё новый аккаунт (для простоты назовём пользователя и группу одинаково). Используйте команду «useradd -a /var/ftp -g userftp userftp». Она заодно создаёт пользователя. Чтобы включить в группу уже существующий никнейм, вместо «useradd» напишите «usermod».
  5. Надо придумать пароль новому пользователю. Введите в терминале «passwd userftp».
  6. Напечатайте «chmod 555 /var/ftp && chown root:userftp /var/ftp», чтобы предоставить аккаунту доступ к корневой папке файлового сервера.
  7. Теперь создайте публичную директорию. Последовательно введите «mkdir /var/ftp/pub» и «chown userftp:userftp /var/ftp/pub».

Изначально FTP запускается в автономном режиме. У неё есть скрипт, который играет роль демона. При такой функциональности доступно несколько команд. Они вводятся после строки «sudo service vsftpd».

  • Stop и Start. Отключение и включение.
  • Restart и Reload. Перезапуск. Нужен для применения новых настроек. Разница между командами в том, что во второй перезагрузка происходит без полного отключения.
  • Status. Информация о состоянии.

Дальнейшая настройка сервера заключается в переписывании файла конфигурации, который находится в etc/vsftpd.conf. У него простая и понятная структура. Разобраться в нём достаточно просто. Хотя для этого нужны определённые знания. Перед изменением этого файла имеет смысл сделать его резервную копию. Чтобы в случае выявления ошибок можно было всё восстановить. Введите команду «cp /etc/vsftpd.conf /etc/vsftpd_old.conf» и информация будет сохранена.

После этого можно приступать к редактированию.

  • В параметре «listen=» напишите «YES». Тогда сервер будет работать в независимом режиме.
  • «Local_enable» разрешает вход локальным пользователям.
  • «Write_enable» даёт им доступ в домашние каталоги.
  • «Anonymous_enable». Можно ограничить права анонимных пользователей, если поставить «NO». Также есть опция «no_anon_password» - анонимные входят без пароля. Её тоже можно запретить.

Если вы хотите делать публичный сервер, то после строки «listen» надо добавить несколько дополнительных параметров.

  • «Max_clients». Количество одновременных соединений.
  • «Idle_session_timeout» и «data_connection_timeout». Таймауты сессии.
  • «Ftpd_banner». Приветственное сообщение для посетителей. Можно написать, к примеру, «Hello!».

Терминальный сервер

Терминальный сервер на Linux предназначен для предприятий и офисов , все компьютеры в которых объединены в одну сеть. Очень удобно, когда с любого ПК (если у него есть доступ) организации можно зайти на терминал. Это открывает большие возможности для удалённого администрирования.

Для такой задачи подходит LTSP - Linux Terminal Server Project. Программа есть в стандартном пакете Ubuntu. Чтобы её установить:

  1. Введите команду «ltsp-server-standalone».
  2. Потом напишите «apt-get update && apt-get install ltsp-server-standalone».
  3. Подождите, пока всё загрузится и обновится.
  4. Теперь надо поставить клиентскую систему. Напечатайте «ltsp-build-client».
  5. Затем «ltsp-build-client -dist trusty -arch i386 -fat-client-desktop lubuntu-desktop».
  6. Используйте команду «debootstrap», и дистрибутив автоматически развернётся в директорию «opt/ltsp/i386».

Linux Server может работать даже на слабых ПК. Поэтому его очень часто используют для создания серверов и удалённого администрирования. На этой операционной системе делают почтовые сервисы, FTP-хранилища, терминалы.

Итак, сеть поднята и свитч бодренько моргает диодами. Самое время для настройки нашего маленького, но гордого сервера, работающего под управлением Ubuntu Server 10.04 LTS. Используя образ диска (его можно по HTTP или через torrent, - 700Mb.) записываем его на болванку. Для этих целей рекомендую использовать «Daemon Tools Lite» или « » так как обе эти программы - бесплатные и полностью удовлетворяет нашим требованиям.

Выставляем в bios-е загрузку с CD или DVD и перезагружаемся.

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

Подсказка : Обратите внимание на строку в самом низу экрана. В ней перечислены функциональные клавиши, с помощью которых осуществляется навигация по меню, выбор опций, доступ к справке и т.д. Это - особенность nix систем.

Мы попадаем в меню загрузки диска. Выбираем пункт «Установить Ubuntu Server».



У нас спросят, где мы будем использовать наш сервер, это повлияет на выбор зеркал обновления (репозиториев). Так как Интернет-провайдеры обычно предоставляют доступ в IX (UA-IX, MSK-IX и похожим сегментам) на более высоких скоростях, выберем наше местоположение. Так как я живу на Украине, я и выбрал «Украина».





В списке стран выберем «Россия»:



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



Итак, после тщательных поисков, нашлись две (в среде Linux они обозначаются как eth0 и eth1 - ethernet). Нам нужно выбрать ту, которая подключена к Интернету (роутеру или модему в нашей локальной сети).



Если на роутере был настроен DHCP (Dynamic Host Configuration Protocol - протокол автоматического назначения IP адресов ), сетевая карта получит соответствующие настройки автоматически. В моем случае DHCP сервер был не настроен, о чем программа установки нам и сообщила. Не беда, ведь можно позже настроить все руками, согласимся со сбоем и продолжим установку.



Вот нам и предложили ввести настройки подключения вручную или попробовать еще раз, пропустить настройку сети или вернуться и выбрать другую сетевую карту. Выберем «настроить сеть вручную».



  • IP: 172.30.2.3
  • Netmask: 255.255.255.0
  • Gateway: 172.30.2.1
  • DNS: 172.30.2.1

После настройки, у нас поинтересуются, как же будет называться наш новоиспеченный сервер? Я назвал его «CoolServ ». В названии должны быть только латинские буквы, цифры, тире или подчеркивание, иначе могут возникнуть непредвиденные неприятности.

Вообще, лучше следовать трем правилам именования переменных в языках программирования, а именно: имя не должно начинаться цифрой, в имени не должно быть пробелов, нельзя использовать зарезервированные слова (специальные конструкции, например if, else, for, goto и т.п.) Есть и четвертое, - не использовать символы национальных алфавитов кроме латинского, например: Русский, Японский, Украинский и т.д. Если придерживаться этого правила, у Вас никогда не будет проблем с работой программ и отображением имен файлов.



ОС определила, что мы находимся во временной зоне Европа/Запорожье, те GMT+2, все так и есть. Для Вас, соответственно, будет свой часовой пояс, если Вы не живете на Украине.



Настало самое «страшное» при любой инсталляции ОС - разметка для ее установки. Но дружелюбная ОС (именно так переводится слово «ubuntu» с языка какого-то племени банановой республики) поможет нам все сделать быстро и качественно. У нас есть два варианта разметки: автоматическая или вручную. Так как мы не ищем легких путей, - выбираем ручную разметку.



На фото ниже отображены подключенные диски. В нашем случае, это - один диск SDA на 8 гигабайт под именем (WD, Seagate и т.п. В моем случае это - виртуальный диск Virtual Box-a). Выбираем его.

Примечание : В *NIX подобных ОС диски не имеют привычных для Windows имен, вроде «C» или «D». Вместо этого они именуются как HDA (для IDE канала) или SDA (в случае SATA или SCSI дисков).

Последняя буква в названии (А) обозначает диск в алфавитном порядке. Т.е. - следующий SATA диск будет именоваться SDB, SDC и так далее. Но это только именование физических дисков, а логические их разделы будут иметь вид SDA1, SDA2, SDA5 и т.д. Причем, цифры от 1 до 4 означают первичный раздел, от 5 и выше - логический. Пусть Вас не смущает такое странное наименование, со временем, я надеюсь, оно станет таким же легким и привычным, как и в среде MS Windows.



Грозная надпись на скриншоте ниже сообщает о том, что все что было на диске может быть утеряно при переразметке, но мы ничего не боимся и жмем «Да».



После этого будет создана таблица разделов, которую нужно «заполнить» самими разделами. Выбираем свободное место и жмем далее (клавишу «Пробел»).



На следующем скриншоте выбираем «Создать новый раздел», хотя все еще можно сделать автоматически, мы упорно будем настраивать вручную:)



Вводим размер нового диска в MB или GB, для начала создадим своп (аналог файла подкачки в MS Windows), размером в 512 мегабайт. Хотя, рекомендуется делать своп размером в полтора раза больше размера общего количества установленной , мы сделаем его равным этому значению.

Примечание : операционные системы *NIX (Unix и Linux) более правильно использует файл подкачки (особенно - в версиях без графического интерфейса), здесь своп будет загружен крайне редко. Например, на моем сервере из 1Gb свопа максимально использовалось несколько мегабайт и то, из-за реально большой нагрузки и времени бесперебойной работы около месяца. В любом случае, больше гигабайта нет смысла делать, так как просто потеряете место, которого всегда не хватает.



Выбираем тип раздела. Я выбрал первичный (т.е., полное имя данного раздела будет - SDA1)



На следующем скриншоте нам нужно будет явно указать что это будет именно своп-раздел. Для этого в настройках раздела выберем опцию «раздел подкачки», поставим метку «загрузочный» и закончим настройку раздела.



Теперь опять выбираем свободную область, создать диск, но сейчас выберем тип «логический». Размер поставим 15 GB, тип файловой системы: EXT4, точка монтирования: / (корень) и на этом закончим с этим разделом.



На все оставшееся место создаем логический раздел с файловой системой EXT4 и точкой монтирования /home , это будет домашний каталог всех пользователей (аналог каталога в MS Windows “Documents and Settings”). На этом закончим настройку дисков. В итоге у Вас должно получиться примерно следующее.



Если все правильно, то выбираем «Да» (как показано на скриншоте ниже). Это - последний момент перед записью таблицы разделов на диск (пока все проделанные нами настройки записывались исключительно в оперативную память ПК). Ну, понеслась!



После записи таблицы начнется установка самой ОС Ubuntu Server 10.04 LTS, это займет минут 5-7.



После окончания процесса, нам предложат ввести имя будущего пользователя. Я введу свое имя. Оно будет использоваться для отправки почты от имени этого пользователя.



После ввода имени, нам нужно придумать имя учетной записи, те пользователя, под которым мы будем входить в систему. Я использовал asus (это - не реклама:))





В целях безопасности, нам предложат бесплатно зашифровать домашний каталог. Нам скрывать нечего, поэтому мы откажемся.

Примечание : при шифровании есть риск того, что в случае неполадок с винчестером, будет проблематично восстановить зашифрованную информацию.



Нам предлагают ввести информацию о прокси-сервере для получения доступа к Интернету. Так как его у нас пока нет, то просто оставим поле пустым. Выбираем «Продолжить».



В отличие от денег-просящей MS Windows, Ubuntu предлагает совершенно бесплатно и своевременно обновляться через Интернет. Выберем пункт «устанавливать обновления безопасности автоматически», чтобы не делать этого потом вручную.



Также, нам сразу предложат установить парочку «демонов» (аналоги системных служб в Windows). Да, это - «страшная» ОС, здесь могут быть даже «зомби» - зависшие «демоны», и отсутствуют иконки:) Для удобства конфигурирования выберем Open SSH server (чтобы можно было по необходимости подключатся к серверу удаленно по сети с использованием терминала).

Наконец-то! Ubuntu Server 10.04 LTS установлен и можно проверить плоды своих трудов! Пробуем войти в систему, используя логин и пароль указанные при установке.



После успешного ввода логина и пароля, ОС поприветствует нас краткой информацией о своем состоянии. У Вас это будет выглядеть приблизительно так:



Из информации на скриншоте выше видно:

  • Система загружена на 0.4%,
  • В домашнем каталоге использовано 3.3% места из 1009 Mb.
  • Используется 3% ОЗУ из 512 Mb, что в переводе на мегабайты составляет всего 21 Mb. Для сравнения MS Windows XP Pro SP3 после «чистой» установки (с оригинального диска) использует около 100Mb и уже в файле подкачки изначально «держит» мегабайт 30.
  • Сейчас запущено 84 процесса, вошедших пользователей нет (потому что информация была взята до того как пользователь, т.е. - мы, вошли в систему).
  • Одной сетевой карте под именем eth0 присвоен IP адрес 172.30.2.3
  • Также доступно 89 пакетов для обновления и 67 пакетов обновления безопасности.

После установки необходимо обновить ОС, для этого потребуется около 70 мегабайт скачать из Интернета. Запускаем команду обновления от имени root-a (администратора) sudo apt-get update , которая обновит список доступных пакетов.

Так как команда требует прав супер пользователя «su» (super user), у нас спросят наш пароль, введем его. Введенная следом команда apt-get upgrade запустит сам процесс обновления пакетов. После запуска будет проверен список пакетов и предложены обновления, подтвердим установку нажав клавишу «Y».



Команда «get update» обновляет список доступного ПО, те только информацию о нем (версия и т.п.), а «upgrade» - производит непосредственно обновление программного обеспечения (скачивает с сайта разработчика новую версию и устанавливает ее).

Рассмотрим ту же самую процедуру обновления с использованием команды sudo



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

Теперь ваш сервер готов к работе! Но его еще нужно настроить (сконфигурировать). Этим мы и займемся в следующей статье.

Что такое Unix (для начинающих)


Дмитрий Ю. Карпов


О чем это я?


Этот опус не претендует на полноту описания. Более того, в целях упрощения сознательно опущены некоторые подробности. Сначала цикл задумывался как FAQ (ЧаВо - часто задаваемые вопросы), но видимо получится "Курс молодого бойца" или "Сержантская школа".

Я попытался дать сравнительное описание разных операционных систем - именно этого на мой взгляд не хватает большинству учебников и технических пособий.

Не дожидаясь разоблачения со стороны опытных Unix"оидов, делаю добровольное признание - я не могу претендовать на роль великого знатока Unix, а мои знания в основном вокруг FreeBSD. Надеюсь, это не помешает.

Этот файл еще долго будет находиться в состоянии "under construction". :-)

Что такое Unix?


Unix - полноценная, изначально многопользовательская, многозадачная и многотерминальная операционная система. Точнее, это целое семейство систем, почти полностью совместимых друг с другом на уровне исходных текстов программ.

Какие бывают Unix"ы и на каких машинах они запускаются?


Этот список не претендует на полноту, ибо кроме перечисленных есть еще множество менее распространенных Unix"ов и Unix-подобных систем, не говоря уже о древних Unix"ах для устаревших машин.

Условно можно выделить семейства System V и Berkeley. System V (читается "System Five") имеет несколько вариантов, последний по моим сведениям System V Release 4. Университет Berkeley славен не только разработкой BSD, но и большинства протоколов Internet. Впрочем, многие Unix"ы сочетают свойства обеих систем.

Где взять бесплатный Unix?


  • Семейство BSD: FreeBSD , NetBSD , OpenBSD .
  • Семейство Linux : RedHat , SlackWare , Debian , Caldera ,
  • SCO и Solaris доступны бесплатно для некоммерческого использования (в основном - для учебных заведений).

    Каковы основные отличия Unix от других OS?


    Unix состоит из ядра с включенными в него драйверами и из утилит (внешних по отношению к ядру программ). Если надо изменить конфигурацию (добавить устройство, изменить порт или прерывание), то ядро пересобирают (перелинковывают) из обьектных модулей или (напр., во FreeBSD) из исходников. /* Это не совсем верно. Некоторые параметры можно поправить без пересборки. Существуют также loadable kernel modules. */

    В противоположность Unix"у Windows (если не уточняется, какая, то имеются в виду 3.11, 95 и NT) и OS/2 при загрузке фактически на ходу прилинковывают драйверы. При этом компактность собранного ядра и повторное использование общего кода на порядок ниже, чем у Unix. Кроме того, при неизменной конфигурации системы ядро Unix без переделки (потребуется изменить только стартовую часть BIOS) может быть записан в ПЗУ и выполняться _не_загружаясь_ в ОЗУ. Компактность кода особенно важна, т.к. ядро и драйверы никогда не покидают физическую оперативную память, не свопятся на диск.

    Unix - самая многоплатформенная OS. WindowsNT пытается подражать ему, но пока это плохо удается - после отказа от MIPS и POWER-PC, W"NT остались всего на двух платформы - традиционная i*86 и DEC Alpha. Разумеется, переносимость программ с одной версии Unix на другую ограничена. Неаккуратно написанная программа, не учитывающая различий в реализациях Unix, делающая необоснованные предположения типа "переменная integer должна занимать четыре байта", может потребовать серьезной переделки. Но все равно это на много порядков легче, чем например пернести с OS/2 на NT.

    Почему Unix?


    Unix используется как в качестве как сервера, так и рабочей станции. В номинации серверов с ним конкурируют MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS и операционные системы мэйнфреймов. Каждая система имеет свою область применения, в которой она лучше других.

  • WindowsNT - для администраторов, которые предпочитают привычный интерфейс экономному расходованию ресурсов и высокой производительности.
  • Netware - для сетей, где нужна высокая производительность файлового и принтерного сервиса и не столь важны остальные сервисы. Главный недостаток - на сервере Netware трудно запускать приложения.
  • OS/2 хороша там, где нужен "легкий" сервер приложений. Ресурсов требует меньше чем NT, в управлении гибче (хотя в настройке может и сложнее), а многозадачность очень хорошая. Авторизация и разграничение прав доступа не реализованы на уровне ОС, что с лихвой окупается реализацией на уровне приложений-серверов. (Впрочем, зачастую остальные OS делают то же самое). Многие станции FIDOnet и BBS сделаны на базе OS/2.
  • VMS - мощный, ничем не уступающий Unix"ам (а во многом и превосходящий его) сервер приложений, но только для платформ VAX и Alpha фирмы DEC.
  • Мэйнфреймы - для обслуживания очень большого количества пользователей (порядка нескольких тысяч). Но работа этих пользователей как правило организована в виде не клиент-серверного взаимодействия, а в виде хост-терминального. Терминал же в этой паре скорее не клиент, а сервер (Мир Internet, N3 за 1996-й год). К преимуществам мэйнфреймов надо отнести более высокую защищенность и устойчивость к сбоям, а к недостаткам - соответствующую этим качествам цену.

    Unix хорош для квалифицированного (или желающего стать таковым) администратора, т.к. требует знания принципов функционирования происходящих в нем процессов. Реальная многозадачность и жесткое разделение памяти обеспечивают высокую надежность функционирования системы, хотя в производительности файл- и принт-сервисов Unix"ы уступают Netware.

    Недостаточная гибкость предоставления прав доступа пользователей к файлам по сравнению с WindowsNT затрудняет организацию _на_уровне_файловой_системы_ группового доступа к данным (точнее, к файлам), что на мой взгляд компенсируется простотой реализации, а значит меньшими требованиями к аппаратуре. Впрочем, такие приложения, как SQL-сервер решают проблему группового доступа к данным своими силами, так что отсутствующая в Unix возможность запретить доступ к _файлу_ конкретному пользователю на мой взгляд является явно избыточной.

    Практически все протоколы, на которых основан Internet, были разработаны под Unix, в частности стек протоколов TCP/IP придуман в университете Berkeley.

    Защищенность Unix при правильном администрировании (а когда это не так?) ни в чем не уступает ни Novell, ни WindowsNT.

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

    В номинации рабочих станций с Unix конкурируют MS Windows*, IBM OS/2, Macintosh и Acorn RISC-OS.

  • Windows - для тех, кто ценит совместимость больше эффективности; для тех, кто готов купить большое количество памяти, дискового пространства и мегагерц; для тех, кто любит не вникая в суть, щелкать мышкой по кнопочкам в окошке. Правда, рано или поздно все равно придется изучить принципы работы системы и протоколов, но тогда уже будет поздно - выбор сделан. Немаловажным преимуществом Windows надо признать также возможность украсть кучу программного обеспечения.
  • OS/2 - для любителей OS/2. :-) Хотя по некоторым сведениям OS/2 лучше других взаимодействует с мэйнфреймами и сетями IBM.
  • Macintosh - для графических, издательских и музыкальных работ, а также для тех, кто любит понятный, красивый интерфейс и не хочет (не может) разбираться в подробностях функционирования системы.
  • RISC-OS, прошитая в ПЗУ, позволяет не тратить время на инсталляцию операционной системы и восстановление ее после сбоев. Кроме того, практически все программы под ней очень экономно расходуют ресурсы, благодаря чему не нуждаются в свопинге и работают очень быстро.

    Unix функционирует как на PC, так и на мощных рабочих станциях с RISC-процессорами, под Unix написаны действительно мощные САПР и геоинформационные системы. Своей масштабируемостью Unix из-за его многоплатформенности на порядок превосходит любую другую операционную систему из известных мне.

    Основные понятия Unix


    Unix базируется на двух основных понятиях: "процесс" и "файл". Процессы являют собой динамическую сторону системы, это субьекты; а файлы - статическую, это обьекты действия процессов. Почти весь интерфейс взаимодействия процессов с ядром и друг с другом выглядит как запись/чтение файлов. /* Хотя надо добавить такие вещи, как сигналы, разделяемая память и семафоры. */

    Процессы нельзя путать с программами - одна программа (как правило с различными данными) может выполняться в разных процессах. Процессы можно весьма условно разделить на два типа - задачи и демоны. Задача - это процесс, который выполняет свою работу, стремясь побыстрее закончить ее и завершиться. Демон ждет событий, которые он должен обработать, обрабатывает произошедшие события и снова ждет; завершается он как правило по приказу другого процесса, чаще всего его убивает пользователь, дав команду "kill номер_процесса". /* В этом смысле получается, что интерактивная задача, обрабатывающая ввод пользователя, скорее похожа на демона, чем на задачу. :-) */

    Файловая система


    В старых Unix"ах отводилось 14 букв на имя, в новых это ограничение снято. В директории кроме имени файла находится его идентефикатор inode - целое число, определяющее номер блока, в котором записаны атрибуты файла. Среди них: номер пользователя - хозяина файла; номер группы; количество ссылок на файл (см.далее) даты и время создания, последней модификации и последнего обращения к файлу; атрибуты доступа. Атрибуты доступа содержат тип файла (см.далее), атрибуты смены прав при запуске (см.далее) и права доступа к нему для хозяина, одногрупника и остальных на чтение, запись и выполнение. Право на стирание файла определяется правом записи в вышележащую директорию.

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

    Есть еще одна интересная особенность файловой системы: если после создания файла запись в него шла не подряд, а с большими интервалами, то для этих интервалов место на диске не выделяется. Таким образом суммарный обьем файлов в разделе может быть больше обьема раздела, а при удалении такого файла освобождается меньше места, чем его размер.

    Файлы бывают следующих типов:

    • обычный файл прямого доступа;
    • директория (файл, содержащий имена и идентефикаторы других файлов);
    • символьный линк (строка с именем другого файла);
    • блочное устройство (диск или магнитная лента);
    • последовательное устройство (терминалы, последовательные и параллельные порты; диски и магнитные ленты тоже имеют интерфейс последовательного устройства)
    • поименованный канал.

    Специальные файлы, предназначенные для работы с устройствами, как правило, сосредоточены в директории " /dev ". Вот некоторые из них (в номинации FreeBSD):

    • tty* - терминалы, в т.ч.:
      • ttyv - виртуальная консоль;
      • ttyd - DialIn терминал (обычно последовательный порт);
      • cuaa - DialOut линия
      • ttyp - сетевой псевдо-терминал;
      • tty - терминал, с которым ассоциирована задача;
    • wd* - жесткие диски и их подразделы, в т.ч.:
      • wd - жесткий диск;
      • wds - партиция этого диска (именуемая здесь "slice");
      • wds - раздел партиции;
    • fd - floppy-диск;
    • rwd*, rfd* - то же самое, что wd* и fd*, но с последовательным доступом;

    Иногда требуется, чтобы программа, запущенная пользователем, имела не права запустившего ее пользователя, а какие-то другие. В этом случае устанавливается атрибут смены прав на права пользователя - хозяина программы. (В качестве примера приведу программу, которая читает файл с вопросами и ответами и на основании прочитанного тестирует запустившего эту программу студента. Программа должна иметь право читать файл с ответами, а запустивший ее студент - нет.) Так, например, работает программа passwd, с помощью которой юзер может изсменить свой пароль. Юзер может запустить программу passwd, она может произвести изменения в системной базе данных - а пользователь не может.

    В отличие от DOS, в котором полное имя файла выглядит как "диск:\путь\имя", и RISC-OS, в которой оно выглядит "-файловая_система-диск:$.путь.имя" (что вообще говоря имеет свои преимущества), Unix использует прозрачную нотацию в виде "/путь/имя". Корень отсчитывается от раздела, с которого было загружено ядро Unix. Если мы собираемся использовать другой раздел (а на загрузочном разделе как правило находится только самое необходимое для загрузки), используется команда `mount /dev/файл_раздела директория`. При этом файлы и поддиректории, ранее находившиеся в этой директории, становятся недоступными, пока не раздел не будет размонтирован (естественно, все нормальные люди используют для монтирования разделов пустые директории). Производить монтирование и размонтирование имеет право только супервизор.

    При запуске каждый процесс может расчитывать, что для него уже открыты три файла, которые ему известны как стандартный ввод stdin по дескриптору 0; стандартный вывод stdout по дескриптору 1; и стандартный вывод stderr по дескриптору 2. При регистрации в системе, когда пользователь вводит имя и пароль, а ему запускается shell, все трое направлены на /dev/tty; позже любой из них может быть перенаправлен в любой файл.

    Комадный интерпретатор


    В Unix практически всегда входят два командных интерпретатора - sh (shell) и csh (C-подобный shell). Кроме них еще бывают bash (Bourne), ksh (Korn), и другие. Не вдаваясь в подробности, приведу общие принципы:

    Все команды, кроме изменения текущей директории, установки переменных окружения (environment) и операторов структурного программирования - внешние программы. Программы эти как правило располагаются в каталогах /bin и /usr/bin. Программы системного администрирования - в каталогах /sbin и /usr/sbin.

    Команда состоит из имени запускаемой программы и аргументов. Аргументы отделяются от имени команды и друг от друга пробелаим и табуляциями. Некоторые спецсимволы интерпретируются самим shell"ом. Спецсимволами являются " " ` \ ! $ ^ * ? | & ; (еще какие?).

    В одной командной строке можно дать несколько команд. Команды могут быть разделены; (последовательное выполнение команд), & (асинхронное одновременное выполнение команд), | (синхронное выполнение, стандартный вывод stdout первой команды будет подан на стандартный ввод stdin второй).

    Кроме того, можно брать стандартный ввод из файла, включив в качестве одного из аргументов "<файл" (без кавычек); можно направить стандартный вывод в файл, используя ">файл" (файл будет обнулен) или ">>файл" (запись будет произведена в конец файла). Сама программа не получит этого аргумента; чтобы узнать, что ввод или вывод переназначены, программа должна сама предпринять некоторые весьма нетривиальные телодвижения.

    Руководства - man


    Если надо получить информацию по какой-либо команде, дайте команду "man имя_команды". На экран это будет выдаваться через программу "more" - посмотрите, как с ней управляться на вашем Unix"е командой `man more`.

    Дополнительная документация



  • Книга описывает процесс развертывания и администрирования сети на основе Unix-сервера и Linux-станций. Автор предлагает готовые решения для быстрой установки и настройки локальной сети. Большое количество примеров и готовых настроек позволяет использовать эту книгу в качестве практического руководства для работы.
    Издание предназначено для системных администраторов и опытных пользователей.

    Миграция с ActiveDirectory на LDAP

    21.1. Прежде чем приступить к настройке

    В прошлой главе мы рассмотрели, как настроить первичный контроллер домена на базе FreeBSD п Samba. В этой главе мы усложним задачу и рассмотрим миграцию с ActiveDirectory на LDAP (Lightweight Directory Access Protocol - легковесный нротокап доступа к каталогам). Чтобы фанатам Linux не было обидно, в этой главе мы будем рассматривать настройку на базе Linux. Во FreeBSD форматы файлов будут темп же. но следите за именами файлов - они могут быть несколько иными (имеются в виду полные имена файлов - названия конфигурационных каталогов во FreeBSD и Linux отличаются).

    Итак, предположим, что у нас есть Windows 2000 Server с настроенным ActiveDirectory, наш домен называется LTD. а NetBIOS-имя Windows-сервера - server (имя для Linux-сервера придумаем в процессе настройки). Для реализации нашего проекта нужно установить следующие пакеты: samba (желательно использовать версию 3, если получится), slapd. smbldap-tools. libnss-ldap. apache2. nscd. phpldapadmin. libpam-ldap.

    В этой главе мы выполним не только настройку сервера на базе Linux, но и произведем миграцию пользователей и компьютеров с ActiveDirectory на LDAP.

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

    • Администраторы домена (Domain Admins).
    • Компьютеры домена (Domain Computers).
    • Гости домена (Domain Guests).
    • Пользователи домена (Domain Users).

    В прошлой главе мы не переименовывали группы, поскольку предполагалось, что самого процесса миграции не будет. Мы настраивали сервер с нуля, поэтому сразу создали необходимые группы на английском языке и установили их соответствие системным UNIX-группам с помощью команд:

    Если же оставить название групп на русском, то процесс миграции не будет выполнен корректно - пользователи не будут перенесены на Linux-сервер.

    Теперь нужно подготовить Linux-сервер. Нужно убедиться, что на вашем сервере нет групп со следующими GID: 512, 513. 514, 515, 544, 548. 550, 552. Дело в том. что сценарии smbldap-populate создаст группы именно с этими GID. 11 если в системе уже будут группы с такими GID, то сценарию Sfrbldap-populate не получится создать необходимые группы, следовательно, не получится произвести процесс миграции. Кстати, именно из-за smbldap-populate мы и переименовывали группы пользователей на Windows-сервере - этот сценарий создает группы на английском языке.

    Сам процесс миграции будет производиться утилитой Windows to Linux Migration Toolkit (w2lmt). Скачать эту утилиту можно по адресу: sourceforge.net/projects/w2lmt/

    В состав w2lmt входят несколько сценариев. Основной сценарий называется w21mt-migrate-smbauth. Именно этот сценарий переносит пользователей с Windows-сервера на LDAP. Для миграции DNS используется сценарий w21mt-migrate-dns, но мы этот сценарии использовать не будем, поскольку будем считать, что DNS-сервер уже работает под управлением UNIX. Для миграции службы Exchange используется сценарий w21mt-migrate-directory. Во многих случаях Exchange не используется, a ActiveDirectory используется только для аутентификации пользователей, следовательно, вам понадобится запустить только один сценарий - w21mt-migrate-dns.

    Все готово для миграции, теперь можно приступить к установке программного обеспечения на Linux-сервер. Настройка Linux-сервера будет производиться на примере дистрибутива Debian. В других дистрибутивах будут небольшие отличия, связанные с использованием других менеджеров пакетов. То есть команды установки пакетов в других дистрибутивах будут иными, а форматы файлов останутся такими же, как описано в этой главе.

    От компании IDC, доход на мировом рынке от производства серверов вырос для Linux и сократился для Windows и Unix. Особенно интересно то, что IDC считает не просто число инсталляций, а количество проданных серверов с предустановленной ОС.

    Это значит, что всё больше клиентов просят IBM, HP и Dell (большую тройку поставщиков «железа») установить Linux на сервера. IDC отмечает, что «положительно отразилось на спросе linux-серверов их востребованность для высокопроизводительных (HPC) и облачных вычислений. Спрос вырос на 2,2% за год и составил $2,6 миллиарда в 4Q11. Linux-сервера теперь занимают 18,4% от всего рынка.»

    А как насчёт конкурентов? «Спрос на Windows-сервера немного снизился в 4Q11, упав на 1,5% за год. Квартальная выручка в $6,5 миллиардов для windows составляет 45,8% от всего серверного рынка.» Как уже давно было замечено, доля Unix продолжает падать. “Доход от Unix-cерверов снизился на 10.7% за год до $3,4 миллиардов, что составляет 24.2% от всего рынка. В то же время IBM наращивает свою долю в этой нише на 2.5% относительно прошлого года.”

    Но не только сторонники Linux видят то, что „большие данные“ будут работать на linux и открытых решениях. Бенжамин С. Ву (Benjamin S. Woo), вице-президент IDC по системам хранения сказал, в частности: “Существенный темп роста получат большое число новых открытых проектов, которые связаны с инвестициями в инфраструктуру.”

    Пользователи Linux на предприятиях уже знают это. Опрос Linux Foundation показал, что 72% пользователей linux в крупнейших мировых компаниях планируют расширить использование linux-серверов в ближайшие 12 месяцев для поддержки возрастающего уровня данных, в то время как только 36% сказали, что они намерены расширить количество windows-серверов для работы с „большими данными“.

    В целом, в 2012 году ситуация выглядят хорошо для серверов Linux и их пользователей. Возможно, самая большая проблема, к которой придётся столкнуться - поиск достаточно квалифицированных Linux-специалистов. Более 80% компаний, которые используют Linux



    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: