- •Теоретичні відомості:
- •Історія створення та статус Linux
- •Вхід та вихід з системи
- •Деякі прості команди
- •Файлові системи та каталоги
- •Файли та шляхи
- •Звичайні файли
- •Каталоги
- •Каталоги та фізичні диски
- •Посилання (зв’язки)
- •Спеціальні файли
- •Права доступу до файлів
- •Стандартні каталоги 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. Можливі значення цього поля такі:
Символ |
Значення |
- |
Звичайний файл |
b |
Файл, якому відповідає блочний пристрій |
c |
Файл, якому відповідає символьний пристрій |
d |
Каталог |
Три наступні поля відображають права доступу для файлу для читання, запису, виконання. Перше поле задає права користувача – власника файлу, друге – права групи користувачів, третє – права усіх інших користувачів. Кожне з цих полів має по три символи. Наприклад, послідовність rwx у першому полі означає, що власник файлу має права на читання, запис та виконання файла.
Зазвичай файл-програма виконується з правами доступу того користувача, який її запустив на виконання. Але, якщо встановлено спеціальний біт (User Id bit, біт користувача файла) то програма виконується з правами власника файлу. Це означає, що програма буде мати такі ж права доступу до інших файлів, що й власник. Наприклад, якщо звичайний користувач запустить файл власником якого є адміністратор (root), то програма буде мати права доступу адміністратора при звертанні до всіх файлів системи, незважаючи на обмеження прав доступу звичайного користувача. Аналогічно діє і інший біт керування (group Id bit), тільки по відношенню до групи.
Дані про режим виконання файлу містять ще біт збереження задачі (sticky bit, біт прилипання). Цей біт вказує системі на необхідність зберегти копію програми, що виконується у пам’яті після її завершення. Включення цього біта вигідно при частому запуску програми, так як економить час на завантаження файлу у пам’ять при кожному запуску.
Завдання та зміна прав доступу виконується з використанням команди chmod. Ця команда застосовується у двох формах – абсолютній та відносній. Синтаксис абсолютної форми використовує завдання у вісімковій формі коду прав доступу. Для отримання значення повного коду захисту файлу необхідно додати базові складові частини подані у таблиці нижче
Код |
Режим доступу |
0001 |
Права на виконання для інших |
0002 |
Права на запис для інших |
0004 |
Права на читання для інших |
0010 |
Права на виконання для групи |
0020 |
Права на запис для группы |
0040 |
Права на читання для группы |
0100 |
Права на виконання для власника |
0200 |
Права на запис для власника |
0400 |
Права на читання для власника |
1000 |
Встановлено біт збереження задачі |
2000 |
Якщо файл виконувальний – то включено біт групи, у всіх інших випадках – повністю блокує доступ до файлу |
4000 |
Якщо файл виконувальний – то включено біт користувача |
Наприклад, для того, щоб дати права на читання, запис для власника файлу, на читання та запис групі, та жодних прав іншим користувачам, можна скористатися командою
chmod 660 file
де 660 – це сума відповідник складових кодів прав
При використанні команди chmod у відносній формі, необхідно задати такі параметри:
кому даються права
права даються вперше, додаються до існуючих, чи вилучаються
які нові права даються
Наприклад, команда chmod a=rwx file встановить заново права на читання, запис та виконання для усіх користувачів.
Параметри команди chmod, які використовуються у відносній формі наведені у таблиці нижче
Значення параметра |
Опис |
Група користувачів |
|
a |
Всі користувачі: даний користувач, його група, та усі інші |
g |
Група даного користувача |
o |
Всі користувачі, що не входять у групу даного користувача |
u |
Тільки даний користувач |
Операція |
|
+ |
Додати права до вже існуючих |
- |
Вилучити права |
= |
Надати вказані права замість існуючих |
Права доступу до файлу |
|
x |
Право на виконання |
r |
Право на читання |
w |
Право на запис |
s |
Встановлено біт користувача |
t |
Встановлено біт збереження задачі |
Якщо для файлу біт користувача встановлено, команда 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 вказують на стан біта користувача та біта збереження задачі
