Сервер на платформі Unix. Як створити Linux сервер своїми руками і що для цього потрібно

Останнім часом Unix-рішення поступово почали здавати свої позиції на ринку серверів. Система, що славиться своєю стабільністю та добре зарекомендувала себе за роки успішної служби, повільно, але неухильно витісняється новими перспективними рішеннями на базі Windows та Linux.

Чому популярність Unix-рішень на ринку серверів падає? Є кілька причин. По-перше, стала еволюція як Windows, так і Linux-серверів. Неможливо не звернути увагу на те, що порівняно з зовсім недавнім минулим платформа Windowsзараз виглядає набагато зрілішим. Варто зауважити, що Unix займав своє місце на ринку серверів майже 40 років, тоді як Windows та Linux є відносними новачками у світі серверів. Однак надання безкоштовних послугоднією компанією та потужні постійні фінансові вливання іншою разом виявилися достатньою силою, щоб зайняти гідне місце на ринку.

Зростаюча популярність Windows відчутно вплинула на продаж Unix, позбавивши його істотної частки ринку в останні кілька років. З кінця 2005 року Unix більше не є постачальником серверів №1 на ринку, як свідчать дослідження IDC. Зростаюча тенденція лише підтверджує довгострокові прогнози аналітиків щодо перспектив Unix-рішень. Все частіше зростання потреб корпоративних споживачів призводить до заміни Unix-сервера на рішення, що базуються на Microsoft. Windows Server.

Крім того, відбулися помітні зміни у технічних характеристиках серверів. Довгий час «залізні» Unix сервера, що працюють на SPARCs, Power або Intel Itanium, були платформою, яку вибирали для роботи великі корпорації. Хоча компанії IBM та Sun продовжували роботу над удосконаленням своїх центральних процесорів, архітектура x86 помітно зросла, особливо з появою 64-розрядних процесорів, наприклад, Opteron від AMD. IDC зазначає, що у другому кварталі 2006р. постачання серверів x86 зросли на 13.7%, з яких майже 80% - саме 64-розрядні процесори. А сервери, засновані на Intel Itanium і які є окрему категорію як сервери здатні працювати різних операційних системах нарахували загалом 740 млн. що становить близько 36.4% від загального обсягу продажів.

Можливо, ще більш значним фактором є удосконалення blade - серверів: привабливість форми, здатність підключати кілька «лез» до одного джерела живлення та можливість їхньої «гарячої» заміни (без вимкнення електроживлення) у кластерах. Продаж «лез» у 2005 році зріс на 49.3% порівняно з попереднім роком, а в поточному році їх продажі сягають 37.1% (639 млн. дол. При цьому IBM має частку 39.5%, HP ж істотно скоротив розрив і посів друге місце , отримавши 38,9%.

Отже, мережа піднята і свитч бадьоренько моргає діодами. Саме час для налаштування нашого маленького, але гордого сервера, що працює під управлінням 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 ( DynamicHostConfigurationProtocol- Протокол автоматичного призначення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



Після скачування необхідних пакетівпочнеться їх встановлення, що може тривати кілька хвилин.

Тепер ваш сервер готовий працювати! Але його ще потрібно налаштувати (налаштувати). Цим ми і візьмемося в наступній статті.

Від компанії 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-серверів знизився на 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

Що таке 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 від інших ОС?


    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, ні Windows NT.

    Важливою властивістю 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до 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 не використовується, а ActiveDirectory використовується тільки для автентифікації користувачів, отже, вам доведеться запустити лише один сценарій - w21mt-migrate-dns.

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