Права Доступу і sudo

З поверненням.
У попередньому уроці ти навчився читати файли і шукати всередині них.
Тепер ми переходимо до частини, де Linux починає казати:
“Permission denied.”
Не сприймай це особисто.
Linux не сердиться.
Linux просто захищає систему від хаосу, помилок і сонних пальців з правами адміністратора.
Що Ти Вивчиш
У цьому уроці ти дізнаєшся:
- що таке права доступу до файлів;
- як читати символи типу
rwx; - що означають користувач, група та інші;
- як перевірити поточного користувача за допомогою
whoami; - як користуватися
chmod; - що робить
sudo; - чому не треба використовувати
sudoяк гострий соус.
Місія
Твоя місія проста:
Зрозуміти, чому деякі файли можна читати, змінювати або запускати — а деякі файли ввічливо відмовляють, як серйозний охоронець біля дверей.
Перевір, Хто Ти
Спочатку перевір поточного користувача:
whoami
Можеш побачити щось таке:
viktor
Це означає, що ти працюєш як користувач viktor.
Ти не root.
І це добре.
Бути root постійно — це як їхати танком по хліб.
Можливо, але непотрібно і трохи тривожно.
Створи Файл для Практики
Перейди в папку для практики:
cd ~/terminal-practice
Якщо її немає, створи:
mkdir -p ~/terminal-practice
cd ~/terminal-practice
Створи файл:
touch permissions-demo.txt
Тепер покажи його з деталями:
ls -l permissions-demo.txt
Можеш побачити щось таке:
-rw-r--r-- 1 viktor viktor 0 May 2 10:00 permissions-demo.txt
На початку це виглядає страшно.
Але це не магія.
Це просто інформація в серйозному піджаку.
Розуміння Символів Прав Доступу
Подивись на цю частину:
-rw-r--r--
Перший символ показує тип файлу:
- означає звичайний файл
d означає директорію
Потім права поділені так:
rw- r-- r--
Ці групи означають:
користувач група інші
Тобто:
rw- власник може читати і писати
r-- група може тільки читати
r-- інші можуть тільки читати
Linux фактично каже:
“Власник може редагувати цей файл. Усі інші можуть дивитися, але руки тримати в кишенях.”
Що Означають r, w і x
Права використовують три літери:
r = read
w = write
x = execute
Для файлів:
rозначає, що ти можеш читати файл;wозначає, що ти можеш змінювати файл;xозначає, що ти можеш запускати файл як програму або скрипт.
Для директорій:
rозначає, що ти можеш бачити вміст директорії;wозначає, що ти можеш створювати або видаляти файли всередині;xозначає, що ти можеш увійти в директорію.
Так, x на директорії означає “увійти”.
Linux любить робити життя цікавим.
Додай Текст у Файл
Запиши щось у файл:
echo "Permissions are important." > permissions-demo.txt
Прочитай його:
cat permissions-demo.txt
Ти маєш побачити:
Permissions are important.
Поки все працює.
Файл належить тобі, і ти можеш у нього писати.
Забери Право Запису
Тепер забери у себе право запису:
chmod u-w permissions-demo.txt
Перевір:
ls -l permissions-demo.txt
Можеш побачити:
-r--r--r-- 1 viktor viktor 28 May 2 10:00 permissions-demo.txt
Тепер спробуй знову записати в нього:
echo "Trying to write again." > permissions-demo.txt
Можеш отримати:
Permission denied
Добре.
Linux щойно захистив файл від змін.
Навіть від тебе.
Трохи грубо, але технічно правильно.
Поверни Право Запису
Поверни собі право запису:
chmod u+w permissions-demo.txt
Тепер спробуй:
echo "Writing works again." > permissions-demo.txt
cat permissions-demo.txt
Ти маєш побачити:
Writing works again.
Вітаю.
Ти забрав право, зламав собі доступ і сам його виправив.
Це фактично Linux-тренування в мініатюрі.
Зроби Скрипт Виконуваним
Створи маленький скрипт:
echo 'echo "Hello from my script!"' > hello.sh
Спробуй його запустити:
./hello.sh
Можеш побачити:
Permission denied
Чому?
Бо файл ще не має права на виконання.
Додай право виконання:
chmod u+x hello.sh
Тепер запусти:
./hello.sh
Ти маєш побачити:
Hello from my script!
Ось що робить x.
Воно каже Linux:
“Цей файл можна запускати.”
Числові Права
Ти можеш побачити такі команди:
chmod 755 hello.sh
Це числовий стиль прав доступу.
Числа означають:
7 = read + write + execute
5 = read + execute
5 = read + execute
Тобто 755 означає:
власник може читати, писати і виконувати
група може читати і виконувати
інші можуть читати і виконувати
Ще один поширений варіант:
chmod 644 permissions-demo.txt
Це означає:
власник може читати і писати
група може читати
інші можуть читати
Поки що запам’ятай:
644часто використовують для звичайних файлів;755часто використовують для скриптів і директорій.
Не треба запам’ятовувати все сьогодні.
Твій мозок — не флешка.
Що Таке sudo?
sudo означає “виконай цю команду з правами адміністратора”.
Приклад:
sudo pacman -S htop
На Ubuntu або Debian:
sudo apt install htop
На Fedora:
sudo dnf install htop
sudo використовують, коли команда потребує вищих прав.
Наприклад:
- встановлення програм;
- зміна системних файлів;
- перезапуск сервісів;
- редагування захищеної конфігурації.
sudo — потужний інструмент.
Не використовуй його автоматично.
Використовувати sudo всюди — це як відкривати всі двері бензопилою.
Ефективно, але не елегантно.
Типова Помилка з Правами
Ти можеш побачити:
Permission denied
Зазвичай це означає:
- у тебе немає права читати файл;
- у тебе немає права писати у файл;
- у тебе немає права запускати файл;
- ти намагаєшся змінити щось, що належить іншому користувачу або root.
Перед тим як використовувати sudo, запитай себе:
Мені справді потрібна сила адміністратора тут?
Іноді так.
Іноді відповідь така: “Ні, Вікторе, ти просто не в тій папці.”
Обережно з sudo
Це небезпечно:
sudo rm -r /some/system/folder
Це може видалити важливі системні файли.
Linux зробить саме те, що ти попросиш.
Не те, що ти мав на увазі.
Ось різниця між комп’ютером і мудрим другом.
Практика
Спробуй це:
cd ~/terminal-practice
touch permission-test.txt
ls -l permission-test.txt
chmod u-w permission-test.txt
ls -l permission-test.txt
chmod u+w permission-test.txt
ls -l permission-test.txt
echo 'echo "Script works!"' > test-script.sh
chmod u+x test-script.sh
./test-script.sh
Потім дай відповіді:
- Що показує
whoami? - Що робить
chmod u-w? - Що робить
chmod u+w? - Що робить
chmod u+x? - Що дозволяє робити
sudo?
Міні-Завдання
Створи скрипт my-info.sh.
Він має вивести:
Hello from Linux!
Today I am learning permissions.
Потім:
- Створи файл.
- Спробуй його запустити.
- Додай право виконання.
- Запусти його знову.
- Перевір права через
ls -l.
Використовуй тільки команди термінала.
Без мишки.
Мишка вже подала скаргу у відділ кадрів.
Підсумок
Сьогодні ти дізнався, що:
- Linux використовує права доступу для захисту файлів і директорій;
rозначає read;wозначає write;xозначає execute;- права поділені на користувача, групу та інших;
ls -lпоказує права доступу;chmodзмінює права;sudoзапускає команди з правами адміністратора;sudoтреба використовувати обережно.
Права доступу можуть виглядати дивно на початку, але це одна з причин, чому Linux потужний і безпечний.
Linux каже “ні” не тому, що він тебе ненавидить.
Він каже “ні”, бо іноді ти в одній команді від дуже навчальної катастрофи.
Наступний Урок
У наступному уроці ми навчимося встановлювати програми з термінала за допомогою пакетних менеджерів.
Саме там Linux стає дуже зручним.
І саме там користувачі Arch Linux починають загадково усміхатися.