Разбиране на разрешения за файлове в Linux и как да ги управлявате
Една от ключовите основи на сигурността на Linux системата и много потребителската архитектура е моделът на разрешенията на файловете. За разлика от Windows, Linux строго прилага собствеността и контрола на достъпа за всеки файл и директория в системата. Овладяването на разрешенията на файловете не е само въпрос на сигурност — то е от съществено значение за управлението на сървъри, внедряване на софтуер, изпълнение на скриптове и автоматизиране на задачи.
Модел на разрешенията на файловете в Linux
Всеки файл и директория в Linux имат три типа права на достъп, присвоени на три типа потребители:
| Клас на потребителя | Описание |
|---|---|
| собственик | Потребителят, който притежава файла |
| група | Потребители в групата на файла |
| други | Всички останали потребители в системата |
Всяка класа може да получи три типа разрешения:
| Разрешение | Символ | Значение |
|---|---|---|
| четене | r | Преглед на съдържанието на файла / списък на директорията |
| писане | w | Модифициране на файл или директория |
| изпълнение | x | Изпълнение на файл или достъп до директория |
Преглед на разрешенията с ls -l
Използвайте командата ls -l, за да покажете разрешенията на файловете:
ls -l myscript.sh
Изход:
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh
Разбивка:
- – → обикновен файл
- rwx → собственик (четене/писане/изпълнение)
- r-x → група (четене/изпълнение)
- r– → други (само четене)
Промяна на разрешенията с chmod
📌 Символен режим:
chmod u+x myscript.sh # Add execute to user chmod g-w myscript.sh # Remove write from group chmod o=r myscript.sh # Set read-only for others
📌 Числен режим:
chmod 755 myscript.sh # rwx for owner, rx for group, rx for others
| Октален | Значение |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r– |
| 0 | — |
Пример:
chmod 644 file.txt # owner: rw-, group: r--, others: r-- chmod 700 script.sh # owner: rwx, group/others: ---
Управление на собствеността с chown и chgrp
Промяна на собственик на файла:
chown alice file.txt
Промяна на група:
chgrp devs file.txt
Промяна и на двете:
chown bob:admins file.txt
Използвайте -R, за да приложите промените рекурсивно:
chown -R www-data:www-data /var/www/
Специални битове за разрешения
Linux поддържа три специални режима, които модифицират стандартното поведение:
1. SUID (Set User ID)
- Приложимо за изпълними файлове
- Изпълнява се с привилегиите на собственика, а не на извикващия
chmod u+s /usr/bin/passwd
🔍 изход от ls -l: -rwsr-xr-x
Случай на употреба: /usr/bin/passwd трябва да се изпълнява като root, за да актуализира /etc/shadow.
SGID (Set Group ID) s
- При файлове: изпълнява се с привилегиите на групата на файла
- При директории: новите файлове наследяват групата
chmod g+s /opt/project
🔍 изход от ls -l: drwxr-sr-x
Полезно в споделени папки за разработка.
Sticky Bit t
- При директории: само собственикът може да изтрива/преименува своите файлове
- Често срещано в /tmp за защита на потребителските файлове
chmod +t /shared/folder
ls -ld /tmpdrwxrwxrwt 10 root root 4096 Ян 28 12:00 /tmp
Разбиране на umask
umask задава стандартни разрешения за нови файлове/директории:
Проверете текущата стойност: umask
Обща стойност: 0022
| Файл | Стандартни разрешения | С umask 0022 |
|---|---|---|
| Файл | 666 → 644 | rw-r–r– |
| Дир | 777 → 755 | rwxr-xr-x |
Задайте временно umask:
umask 0077 # Files: 600, Dirs: 700
Рекурсивни корекции на разрешенията
Задайте разрешения за папки и файлове поотделно:
find /my/project -type d -exec chmod 755 {} ; find /my/project -type f -exec chmod 644 {} ;
Заключение
Разрешенията на файловете в Linux предоставят прецизен контрол на достъпа за сигурност, много потребителски среди и автоматизация. Разбирането как да се преглеждат, променят и прилагат разрешенията ви дава възможност да управлявате сървъри с увереност, да защитавате данни и да сътрудничите безопасно.
Независимо дали внедрявате уеб приложения, управлявате облачни сървъри или изграждате скриптове за команден ред — познаването на chmod, chown, umask и специалните битове за разрешения е от съществено значение.
