🔐 Права в Linux. Часть 1
📌 1. Базовые права доступа
Каждый файл и директория в Linux имеют владельца, группу и права доступа, которые задаются тремя наборами битов:
r (4) Чтение (read)
w (2) Запись (write)
x (1) Исполнение (execute)
Формат прав:
-rwxr-xr-- 1 user group 1234 Feb 27 10:00 file.txt
Расшифровка:
- - — тип файла (d — директория, - — обычный файл, l — ссылка и т. д.)
- rwx — права владельца
- r-x — права группы
- r-- — права остальных пользователей
⚙️ 2. Изменение прав: chmod
Изменяет права доступа к файлу или директории.
📍 Символьный способ (+, -, =)
chmod u+x file.txt # Добавить владельцу право на выполнение
chmod g-w file.txt # Убрать у группы право на запись
chmod o=r file.txt # Установить права "только чтение" для остальных
chmod a+x script.sh # Сделать исполняемым для всех
📍 Цифровой способ (восьмеричная нотация)
Каждое право обозначается числом:
- r = 4
- w = 2
- x = 1
Пример:
chmod 755 script.sh # Владелец (7) - rwx, группа (5) - r-x, остальные (5) - r-x
chmod 644 file.txt # Владелец (6) - rw-, группа (4) - r--, остальные (4) - r--
🏷 3. Изменение владельца: chown
Изменяет владельца и группу файла.
📍 Основные команды
chown user file.txt # Изменить владельца
chown user:group file.txt # Изменить владельца и группу
chown :group file.txt # Изменить только группу
chown -R user:group dir/ # Рекурсивно изменить владельца/группу в каталоге
🎭 4. Специальные биты (SUID, GUID, Sticky Bit)
🏆 SUID (Set User ID)
Если установлен на исполняемом файле, процесс выполняется от имени владельца файла, а не от имени пользователя, который его запустил.
Пример:
chmod u+s /usr/bin/passwd # Установка SUID
ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 53232 Feb 27 10:00 /usr/bin/passwd
(s вместо x) у владельца обозначает, что активен SUID.
🏅 GUID (Set Group ID)
Если установлен на исполняемом файле, программа выполняется с правами группы файла.
Если установлен на директории, все созданные файлы наследуют группу директории.
Пример:
chmod g+s directory/ # Установка SGID на директорию
chmod 2755 script.sh # Установка SGID через числовой код
ls -ld directory/
drwxr-sr-x 2 user group 4096 Feb 27 10:00 directory/
(s вместо x) у группы обозначает, что активен SGID.
📌 Sticky Bit
Применяется к директориям, запрещая пользователям удалять чужие файлы в общем каталоге (например, /tmp).
Пример:
chmod +t /tmp # Установка Sticky Bit
chmod 1777 /tmp # Эквивалентная команда в числовом виде
ls -ld /tmp
drwxrwxrwt 10 root root 4096 Feb 27 10:00 /tmp
(t вместо x) у остальных означает, что активен Sticky Bit.
@sysadmin1