🛡️ chmod – Командата за контрол над достъпа в Linux

chmod
– Командата за контрол над достъпа в Linux: Подробно ръководство с примери
В Linux всичко е файл – дори директориите и устройствата. Контролът над достъпа до тези файлове е изключително важен за сигурността и стабилността на системата. Точно тук влиза в действие командата chmod
.
В тази статия ще разгледаме как работи chmod
, какво означават правата, как се използва с различни ключове, както и как да го прилагаме в скриптове и реални сценарии.
📜 Какво е chmod
?
chmod
(от change mode) е команда за промяна на правата за достъп до файлове и директории. Всеки файл в Linux има три вида права:
- r – четене (read)
- w – писане (write)
- x – изпълнение (execute)
Тези права се задават за три групи:
- Потребител (u) – собственикът на файла
- Група (g) – потребителска група
- Други (o) – всички останали
🔢 Символен и числов (октален) режим
✅ Символен синтаксис:
chmod u+x script.sh
✅ Добавя изпълнимо право за потребителя върху script.sh
.
chmod g-w myfile.txt
❌ Премахва правото за писане за групата.
🔢 Числов синтаксис:
Числата се образуват чрез събиране на стойности:
Право | Стойност |
---|---|
r | 4 |
w | 2 |
x | 1 |
Така:
- 7 = r + w + x (пълен достъп)
- 6 = r + w
- 5 = r + x
- 4 = r
- 0 = без права
Пример:
chmod 755 myscript.sh
📌 Това дава:
- Потребител: rwx (7)
- Група: r-x (5)
- Други: r-x (5)
🧪 Практически примери
1. Скрипт за автоматичен backup
След създаване на скрипта:
chmod +x backup.sh
✅ Така скриптът става изпълним.
2. Само четене за всички
chmod 444 important.doc
📄 Всички имат само право да четат файла. Не може да се пише или изпълнява.
3. Само собственикът да има пълен достъп
chmod 700 secrets.txt
🔐 Чудесен вариант за чувствителни файлове като SSH ключове или пароли.
🏗️ Примери с директории
За да направиш директория достъпна:
chmod 755 myfolder
- Собственик: пълен достъп
- Група и други: четене и изпълнение (влизане)
🔁 Рекурсивно прилагане на права
Ако искаш да промениш правата на всички файлове и папки вътре в дадена директория:
chmod -R 755 /var/www/html
⚠️ Внимавай! Това променя ВСИЧКО вътре – включително скриптове и конфигурационни файлове.
⚙️ Комбиниране с find
и chmod
Пример: Даване на изпълнимо право само на .sh
файловете в дадена директория:
find . -type f -name „*.sh“ -exec chmod +x {} ;
🧠 Разбиране на текущите права
Използвай ls -l
, за да видиш текущите права:
ls -l file.txt
Изходът ще изглежда така:
Terminal-rw-r--r-- 1 user user 1234 May 13 20:00 file.txt
Обяснение:
-
→ обикновен файлrw-
→ потребителят има четене и писанеr--
→ групата има само четенеr--
→ другите също имат само четене
🔑 Най-често използвани ключове и опции
Опция | Описание |
---|---|
+x | Добавя изпълнимо право |
-w | Премахва правото за писане |
=r | Задава само четене, премахва всички други права |
-R | Рекурсивно прилагане към всички файлове/директории |
📁 Примерен скрипт с chmod
#!/bin/bash
# secure.sh
echo „Променяме правата на конфиденциални файлове…“
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod +x secure.sh
./secure.sh
🛡️ chmod
и сигурността
chmod
е не само удобство, а ключов инструмент за сигурност. Грешно зададени права могат да изложат чувствителна информация.
❌ НЕПРАВИЛНО:
chmod 777 /etc/passwd
⚠️ Това позволява на всеки да пише във файл, съдържащ потребителски акаунти. Абсолютно неприемливо!
✅ ПРАВИЛНО:
chmod 644 /etc/passwd
💡 Полезни съвети
- Използвай
chmod
заедно сumask
, за да зададеш правилата по подразбиране - Комбинирай с
chown
за пълно управление на достъпа - Използвай числовия синтаксис за скриптове – по-точен е
- Не давай права 777 освен ако много добре не знаеш защо!
🧾 Заключение
Командата chmod
е основен инструмент за всеки Linux администратор. С нея можеш да контролираш кой има достъп до кои файлове и какви действия може да извършва. В тази статия научи:
✅ Как работи chmod
✅ Разликата между символен и числов синтаксис
✅ Реални примери със скриптове
✅ Принципи на сигурност при използване на права