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

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

chmod – Командата за контрол над достъпа в Linux: Подробно ръководство с примери

В Linux всичко е файл – дори директориите и устройствата. Контролът над достъпа до тези файлове е изключително важен за сигурността и стабилността на системата. Точно тук влиза в действие командата chmod.

В тази статия ще разгледаме как работи chmod, какво означават правата, как се използва с различни ключове, както и как да го прилагаме в скриптове и реални сценарии.


📜 Какво е chmod?

chmod (от change mode) е команда за промяна на правата за достъп до файлове и директории. Всеки файл в Linux има три вида права:

  • r – четене (read)
  • w – писане (write)
  • x – изпълнение (execute)

Тези права се задават за три групи:

  • Потребител (u) – собственикът на файла
  • Група (g) – потребителска група
  • Други (o) – всички останали

🔢 Символен и числов (октален) режим

✅ Символен синтаксис:

Terminal
chmod u+x script.sh

✅ Добавя изпълнимо право за потребителя върху script.sh.

Terminal
chmod g-w myfile.txt

❌ Премахва правото за писане за групата.

🔢 Числов синтаксис:

Числата се образуват чрез събиране на стойности:

ПравоСтойност
r4
w2
x1

Така:

  • 7 = r + w + x (пълен достъп)
  • 6 = r + w
  • 5 = r + x
  • 4 = r
  • 0 = без права

Пример:

Terminal
chmod 755 myscript.sh

📌 Това дава:

  • Потребител: rwx (7)
  • Група: r-x (5)
  • Други: r-x (5)

🧪 Практически примери

1. Скрипт за автоматичен backup

След създаване на скрипта:

Terminal
chmod +x backup.sh

✅ Така скриптът става изпълним.


2. Само четене за всички

Terminal
chmod 444 important.doc

📄 Всички имат само право да четат файла. Не може да се пише или изпълнява.


3. Само собственикът да има пълен достъп

Terminal
chmod 700 secrets.txt

🔐 Чудесен вариант за чувствителни файлове като SSH ключове или пароли.


🏗️ Примери с директории

За да направиш директория достъпна:

Terminal
chmod 755 myfolder
  • Собственик: пълен достъп
  • Група и други: четене и изпълнение (влизане)

🔁 Рекурсивно прилагане на права

Ако искаш да промениш правата на всички файлове и папки вътре в дадена директория:

Terminal
chmod -R 755 /var/www/html

⚠️ Внимавай! Това променя ВСИЧКО вътре – включително скриптове и конфигурационни файлове.


⚙️ Комбиниране с find и chmod

Пример: Даване на изпълнимо право само на .sh файловете в дадена директория:

Terminal
find . -type f -name „*.sh“ -exec chmod +x {} ;

🧠 Разбиране на текущите права

Използвай ls -l, за да видиш текущите права:

Terminal
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

Terminal
#!/bin/bash
# secure.sh
echo „Променяме правата на конфиденциални файлове…“
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
Terminal
chmod +x secure.sh
./secure.sh

🛡️ chmod и сигурността

chmod е не само удобство, а ключов инструмент за сигурност. Грешно зададени права могат да изложат чувствителна информация.

❌ НЕПРАВИЛНО:

Terminal
chmod 777 /etc/passwd

⚠️ Това позволява на всеки да пише във файл, съдържащ потребителски акаунти. Абсолютно неприемливо!

✅ ПРАВИЛНО:

Terminal
chmod 644 /etc/passwd

💡 Полезни съвети

  • Използвай chmod заедно с umask, за да зададеш правилата по подразбиране
  • Комбинирай с chown за пълно управление на достъпа
  • Използвай числовия синтаксис за скриптове – по-точен е
  • Не давай права 777 освен ако много добре не знаеш защо!

🧾 Заключение

Командата chmod е основен инструмент за всеки Linux администратор. С нея можеш да контролираш кой има достъп до кои файлове и какви действия може да извършва. В тази статия научи:

✅ Как работи chmod
✅ Разликата между символен и числов синтаксис
✅ Реални примери със скриптове
✅ Принципи на сигурност при използване на права

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: 🔰