Міністерство освіти та науки України
Національний університет «Львівська Політехніка»
Кафедра САПР
Звіт
До лабораторної рботи № 1
З курсу:””
На тему:”ОС Linux. Знайомство з операційною системою”
Виконав:
Ст.гр. ІТП
Прийняв:
Львів – 2008 р.
Мета роботи
Навчитися основам роботи з файловою системою Linux, керування правами доступу користувача. Дослідити зміст та призначення стандартних каталогів Linux. Практично засвоїти базові операції з ОС
Теоретичні відомості:
Історія створення та статус Linux
Linux – один з клонів ОС UNIX, який вільно розповсюджуєтся відповідно до ліцензії GNU. Основу цієї ОС було закладено Лінусом Торвальдсом (Linus Torvalds) з університету м. Хельсинки. На сьогодні Лінус координує роботи з ядром Linux, але розробка системи виконується великим колективом програмістів з різних країн відповідно до проекту GNU, який координує Товариство Вільного Програмного Забезпечення (Free Software Foundation). Перша версія Linux вийшла 5 жовтня 1991 року. На сьогодні існує велика кількість дистрибутивів Linux, що використовують одне ядро Linux. На сьогодні найновішою версією ядра є __________
Вхід та вихід з системи
Linux , так як і UNIX є багатокористувацькою ОС. Це значить, що декілька користувачів, що працюють за різними терміналами, можуть одночасно працювати з одним сервером Linux. Кожен користувач у багатокористувацькій системі мусить мати своє ім”я та пароль. Після завантаження системи виводиться підказка:
login: користувач вводить ім”я користувача ОС
password: користувач вводить відповідний пароль. Процес введення паролю не відображається на екрані.
Ім”я користувача та пароль задаються адміністратором та можуть бути змінені користувачем з викорисанням команди passwd
Якщо реєстраційні дані уведені правильно, користувач отритмує можливість введення команд з командного рядка інтерпретатора команд.
Після закінченння роботи необхідно коректно вийти з системи з використанням команди shutdown –r now
Деякі прості команди
date – вивід біжучої дати та часу
who – список користувачів, що працюють у системі1
pwd – відображення біжучого каталогу
passwd – зміна паролю
cd – змінга каталогу
ls – відображення списку файлів та каталогів у біжучому каталозі
Файлові системи та каталоги
Існує два розуміння терміну „Файлова система”. У першому файловою системою вважають конкретний набір файлів та каталогів на диску та його логічна організація. У другому – організація збереження інформації на диску, способи доступу до даних. У цій роботі ми розглядаємо логічну організацію файлів на диску.
Файлова система Linux подібна до файлової системи MS DOS, яка у свій час створювалася по аналогії з файловою системою UNIX. Кожний логічний та фізичний об”єкт у Linux існує як файл Linux. В якості фізичних об”єктів виступають диски, прінтери, термінали; під логічними об”єктами розуміють каталоги та звичайні файли, що містіть докуменнти та програми.
В цій лабораторні й роботі ви ознйомитеся з
іменами файлів, що дозволені в Linux
типами файлів Linux
як визначити та налаштувати дозволи на доступ до файлу
структурою каталогів Linux
Файли та шляхи
В Linux як і в інших операційних системах, треба розрізняти коротке та повне імена файлів. Повне ім”я файлу відображає розташування файлу у файловій системі – абсолютне або відносне. Ім”я файлу (коротке) – це послідовність букв, цифр та деяких розділових знаків. Ця послідовність не повинна містити пробіли або інші символи, що використовуються як розділювачі полів (delimiters). Наприклад назва файлу johns.letter – це коректна назва, а назва johns letter – некоректна, так як містить пробіл. У назвах файлів не дозволяється використовувати деякі службові символи, які мають спеціальне значення для інтерпретатора команд системи:
! @ # $ % ^ & * ( ) [ ] { } ' " \ / | ; < >
Особливу роль відіграє символ / , який використовують як розділювач у шляхах файлів. Існує можливість використовувати в іменах файлів і „заборонені” символи, але тоді треба брати ім”я файлу у лапки, наприклад
“! Johns Letter” . Але при цьому морже ускладнитися використання цього файлу програмами, а також його використання в інших ОС.
Примітка: у деяких дистрибутивах Linux обмеження на використання спеціальних символів в іменах файлів в значній мірі подолано. Водночас, з метою збереження переносимості програм рекомендується дотримуватися згаданих вище обмежень.і
Перші версії UNIX, з яких виводится і Linux, мали обмеження на довжину файлу у 14 символів. В Linux це обмеження знято – імена файлів можуть мати до 256 символів. Деякі з існуючих версій UNIX (наприклад BSD), дозволяють викуористовувати імена довжиною до 64 символів, але тільки перші 14 з них є значущими. Для забезпечення сумісності між операційними системами рекомендується обмежити імена файлів 14 символами.
Повне ім”я (шлях) файлу може мати необмежену кількість символів.
В Linux файли не існують самі по собі, вони обов”язково повинні міститися в якомусь каталозі. Найвищий ієрархічний рівень у системі каталогів називається коріневим (root) та позначається знаком /. Якщо файл носит ім”я minny, та розташований у кореневому каталозі, то його абсолютний шлях буде /minny.
Файлі користувачів розміщуються в одному з підкаталогів кореневого каталогу з ім”ям Home. Для кожного з користувачів створюють окремий підкаталог з ім”ям користувача. Наприклад, якщо в системі існує користувач minny, то іі файли будуть знаходитися у каталозі /home/minny. Абсолютне ім”я файлу вказує повний шлях до файлу починаючи з кореневого каталогу. Наприклад, таким іменем може бути /home/minny/minnys.file.
Поряд з абсолютним іменем існує і відносне ім”я, яке задається відносно біжучого каталогу. Наприклад, якщо користувач minny знаходитьься у своєму долмашньомук каталогу /home/minny, то відносним іменем файлу буде minnys.file. Для того, щоб визначити який каталог є біжучим, можна скористатися командою pwd (print working directory). Визначити біжучий каталог також можна якщо вивести на екран значення змінної оточення $pwd командою echo $pwd
При завданні відносного імені файла можна використовувати два знаки, що мають спеціальне значення. Це
. (окрема крапка) – означає біжучий каталог,
.. (дві крапки) – означає батьківський каталог для біжучого
Наприклад, якщо біжучий каталог /home/minny, то каталог з абсолютни ім”ям /minny можна задати таки відносним ім”ям: ../../minny. Знак біжучого каталогу – окрема крапка- буває корисним, наприклад, підчас переміщення файлу. Для того, щоб перенести каталог /copper у біжучий каталог, використовують команду
mv /copper minny
Цю ж операцію можна виконати і інакше:
mv /copper .
де знак . використовується для позначення біжучого каталогу.
Більшість команд Linux працюють з повними іменами файлів. Але найчастіше доводиьтся виконувати операції над файлами з біжучого каталогу. При цьому всі відносні імена розглядаються відносно біжучого каталогу.
Каталоги є різновидом файлів. Каталогів іменують по тих же правилах, що й файли. На відміну від деяких ОС, в Linux немає поняття логічного диску позначеного літерою. Всі файли, навіть фізично розміщені на різних дисках, логічно подані як складова частина кореневої файлової системи.
Визначено чотири головних типів файлів: звичайний файл, каталог, посилання та спеціальний файл. Кожен з тих типів, крім каталогів, має декілька підтипів.
Для того, щоб визначити тип файлу, використовуйте команду file. Ця команда дозволяє визначити, чи є файл виконувальним, текстовим, чи містить інші дані. Команда file має такий синтаксис:
file [-vczl] [-f namefile] [-m magicfile] filelist
Де:
Звичайні файли
Користувачі системи Linux найчастіше працюють з звичайними файлами. Ці файли, наприклад, моржуть містити віхідний код програми на мові С, скріпт командної мови, двійковий виконувальний код та ін. Файли різних типів не відрізняються в Linux, за виключенням, виконувальних, які мають спеціальну ознаку. Виконувальні файли можна запустити на виконання якщо вказати у командному рядку назву файла. Виконувальні файли – це бінарні двійкові файли, що містять машинній код або команди командної мови.
Каталоги
Каталоги – це файли, що містять імена звиччайних файлів та підкаталогів, а такод вказівники на ці файли та підкаталоги. Каталоги – це єдини місце у системі, де зафіксовані назви файлів. При використанні команди ls, яка відображає зміст каталога, просто виводиться зміст файлу каталога. Будь-якого звертання до самих файлів не відбувається. Якщо назву файлу змінюють (командою mv) так що файл залишається у тому ж каталозі, система змінює відповідний запис у файлі каталога. Якщо файл переміщується в інший каталог того ж диску, то запис про файл переміщується у файл каталогу призначення. Якщо ж файл переміщується на інший диск, то система фізично переміщує сам файл на цей диск, та відображає ці зміни у відповідних файлах каталогів.
Каталоги та фізичні диски
Кожному файлу в Linux присвоюють унікальний номер, який називають індексом файла (inode). Індекс зберігають у таблиці індексів (inode table), яка створюється при форматуванні диску. Кожен фізичний та логічний диск мають свою таблицю індексів. Індекс містить всю інформацію про файл, таку як тип файлу та розташування даних на диску. Тип прописанй в індексі може приймати три значення- звичайний файл, каталог, спеціальний файл.
Індекс з номенром 1 присвоюється кореневому (root) каталогу і дає системі адресу розташування кореневого каталогу на диску. Кореневий каталог містить список файлів, назві каталогів та відповідних індексів.
Linux може знайти довільний файл, переглянувши ланцюжок каталогів, починаючи з кореневого. Зміст каталогу може виглядати, наприклад, так:
1 .
1 ..
45 etc
230 dev
420 home
123 .profile
У списку наявні файли . (крапка) та .. (дві крапки), які відповідають біжучому каталогу та батьківському каталогу. Так як еореневий каталог не має батьківського, то запис про батьківський каталог посилається на сам кореневий каталог.
Зміст каталогу /home виглядає так:
420 .
1 ..
643 minny
Індекс біжучого каталога (.) співпадає з індексом, ваказаним для /home у кореневому каталогу. Індекс батьківського каталога відповідає індексу кореневого каталога.
Linux орієнтується у файловій системі рухаючись уверх та вниз по ланцюжкам файлів- каталогів файлової системи. Якщо файл переносится на інший диск, система спочатку знаходить цей файл на диску, аналізуцючи таблицю індексів. Потім файл переноситься на інший диск фізично, а в таблицю індексів нового диску додається індекс нового файла. Після цього індекс в таблиці первинного диску знищується.
При знищенні файлу, система фізично файл не витирає. Замість цього вона помічає індекс цього файлу як вільний, а запис в каталозі про файл знищується.
Посилання (зв”язки)
Посилання не є справжніми файлами. Їм відповідають записи в каталогах, що вказують на один і той же індекс. В таблиці індексів зберігається інформація про те, скільки посилань асоційовано з файлом. Файл можна знищити тільки, коли на нього не буде посилань. Посилання не можуть вказувати на файли на іншому диску.
Linux має посилання і іншого типу, т. зв. символічні посилання (symbolic link) Для такого просилання відповідний запис каталога містить індекс файлу, в якому розміщена інформація про шлях до іншого файла, який може знаходитися у довільному місці логічної файлової системи Linux. Якщо знищується файл, то знищуються і всі символічні посилиння на нього.
Для відображення інформації про посилання можна скористатися командою ls –l
При цьому у списку файлів біжучого каталогу буде відображатися, що даний файл є посиланням, наприклад:
lrwxrwxrwx 1 root root 4 Jan 18 16:27 Info->info/
Ознакою того, що даний файл є посиланням є символ “l” на початку рядка
Спеціальні файли
Всі фізичні пристрої, приєднані до Linux – диски, термінали, прінтери – подані файлами. Майже усім зовнішнім пристроям відповідають файли у каталозі /dev. Наприклад, системній консолі відповідає файл /dev/console, а терміналу може відповідати файл /dev/tty01.
Прінтери та термінали називають символьними пристроями, так як обмін інформацією з комп”ютера з ними відбувається посимвольно. На відміну від символьних пристроїв, обмін даними з дисками відбувається цілими блоками, кожен з яких має адрес, поданий відповідними номерами дорожки та сектору. На диск неможливо записати чи прочитати окремий символ. Тому диск є блочним пристроєм.
Для зручності в Linux робота з символьними та блочними пристроями відбувається з точки зору користувача однаково. Як для символьних, так і для блочних пристроїв створюється логічний пристрій символьного типу.
Ще одним типом пристрою є іменований канал (named pipe). Фактично він є буфером FIFO (first in — first out). Такий буфер є звичайним файлом. При записі його розмір збільшується, а при зчитуванні – зменшується. Такі файли використовують для того, декілька одночасно працюючих програм посилали інформацію одна одній. Наприклад, команда роздруку файлів lp визначає параметри друку шляхом запису в іменований канал інформації для системного процеса lpshed який керує друкуванням.
Корисним є також спеціальний пристрій /dev/null (кошик для сміття). Вивід даних у цей файл ігнорується. Наприклад, якщо користувача не цікавлять діагносимчні повідомлення, які зазвичай виводяться в стандартний потік помилок, він може переспрямувати вивід у кошик для сміття:
ls -la > /dev/null
Права доступу до файлів
Права доступу до файлу або каталогу в Linux – це щось більше ніж просто права доступу на читання або запуск програми – вони визначають також і тип файла і то, яким чином буде виконуватися процес, що відповідає файлу.
Права доступу для даного файлу можна дізнатися, якщо виконати команду ls –l . Параметр -l вказує команді ls, що списоу файлів біжучого каталога треба видати у розширеному форматі. Результат виконання команди може виглядати, наприклад, так:
drwx------ 2 sglines doc 512 Jan 1 13:44 Mail
drwx------ 5 sglines doc 1024 Jan 17 08:22 News
-rw------- 1 sglines doc 1268 Dee 7 15:01 biblio
drwx------ 2 sglines doc 512 Dee 15 21:28 bin
-rw------- 1 sglines doc 44787 Oct 20 06:59 books
-rw------- 1 sglines doc 23801 Dee 14 22:50 bots.msg
-rw-r----- 1 sglines doc 105990 Dee 27 21:24 duckie.gif
У цьому виводі відображена практично уся інформація, яку можна отримати аналізуюсчи записи у каталозі та індекси файлів. У першій колонці наведені права доступу до файлів, другий стовпець вказує кфлькість посилань на файл або к-сть додаткових блоків каталогу, третя відображає власника файла (в Linux власники файлів можуть бути трьох типів: користувач, група користувачів, всі користувачі). Четвертий стовпець містить ім”я групи якій належить даний файл, п”ята – розмір файлу в байтах, шоста – час та дату його створення, а сьома – назву файла.
Перший стовпець з правами доступу у свою чергу склавдається з чотирьох полів:
- rwx rwx rwx
Перше поле вказує на тип файла. Звичайний файл позначається (-), каталог – буквою d. Можливі значення цього поля такі:
Три наступні поля відображають права доступу для файлу для читання, запису, виконання. Перше поле задає права користувача – власника файла, друге – права групи користувачів, третє – права усіх інших користувачів. Кожне з цих полів має по три символи. Наприклад, послідовність rwx у першому полі означає, що власник файла має права на читання, запис та виконання файла.
Зазвичай файл-програма виконується з правами доступу того користувача, який її запустив на виконання. Але, якщо встановлено спеціальний біт (User Id bit, біт користувача файла) то програма виконується з правами власника файла. Це означає, що програма буде мати такі ж права доступу до інших файлів, що й власник. Наприклад, якщо звичайний користувач запустить файл власником якого є адміністратор (root), то програма буде мати права доступу адміністратора при звертанні до всіх файлів системи, незважаючи на обмеження прав доступу звичайного користувача. Аналогічно діє і інший біт керування (group Id bit), тільки по відношенню до групи.
Дані про режим виконання файлу містять ще біт збереження задачі (sticky bit, біт прилипання). Цей біт вказує системі на необхідність зберегти копію програми, що виконується у пам”яті після її завершення. Включення цього біта вигідно при частому запуску програми, так як економить час на завантьаження файла у пам”ять при кожному запуску.
Завдання та зміна прав доступу виконується з використанням кооманди chmod. Ця команда застосовується у двох формах – абсолютній та відносній. Синтаксис абсолютної форми використовує завдання у восьмірковій формі кода прав доступу. Для отримання значення повного коду захисту файла необхідно додати базові складові чсастини подані у таблиці нижче
Наприклад, для того, щоб дати права на читання, запис для власника файлу, на читання та запис групі, та жодних прав іншим користувачам, можна скористатися командою
chmod 660 file
де 660 – це сума відповідник складових кодів прав
При використанні команди chmod у відносній формі, необхідно задати такі параметри:
кому даються права
права даються вперше, додаються до існуючих, чи вилучаються
які нові права даються
Наприклад, команда chmod a=rwx file встановить заново права на читання, запис та виконання для усіх користувачів.
Параметри команди chmod, які використовуються у відносній формі наведені у таблиці нижче
Якщо для файла біт користувача встановлено, команда ls –l виведе для нього такий рядок:
-rws------ 1 sglines 3136 Jan 17 15:42 х
Якщо додати біт групи, цей вивід буде такий:
-rws--s--- 1 sglines 3136 Jan 17 15:42 х
Якщо додати біт збереження задачі, отримаємо наступний запис:
-rws--srwt 1 sglines 3136 Jan 17 15:42 х
Літери s та t вказують на стан біта користувача та біта збереження задачі
Стандартні каталоги Linux
Коли користувач успішно зареєструється у системі, він одразу ж потрапляє до свого робочого каталогу /home/username, де username – ім”я користувача у системі. Змінна PATH містить посилання на інші каталоги, де знаходяться виконувальні файли.
Типова структура каталогів Linux виглядає так:
Висновок
На цій лабораторній роботі я навчитися основам роботи з файловою системою Linux, керування правами доступу користувача, дослідив зміст та призначення стандартних каталогів Linux.