Содержание

chown Изменить владельца

КомандаОписание
chown linda /home/account изменение владельца каталога /home/account на linda
touch – -p создание с именем "-p", – говорят, что дальше опций нет.
sudo chgrp -R haproxy /etc/haproxy/Сделать владельцем папки и файлов внутри /etc/haproxy группы haproxy

# cp Копирование файла

КомандаОписание
sudo cp 2.txt{,.back}Копирование файла 2.txt и дописывание ему расширение .back

chmod Права на файлы и папки

Права в Linux (chown, chmod, SUID, GUID, sticky bit, ACL, umask)

Просмотр прав

stat имя файла

myuser@astra:~$ stat /bin/passwd
  Файл: /bin/passwd
  Размер: 68840         Блоков: 136        Блок В/В: 4096   обычный файл
Устройство: 8/4 Инода: 788635      Ссылки: 1
Доступ: (4755/-rwsr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Доступ:        2026-03-19 15:22:26.560593390 +0300
Модифицирован: 2026-01-28 20:40:25.000000000 +0300
Изменён:       2026-03-16 15:53:15.812000000 +0300
Создан:        2026-03-16 15:43:31.132000000 +0300

Установка прав на папки и файлы

chmod [опции] <права> <файлы> 
-R или —recursive рекурсивно изменяет права доступа для всех файлов и подкаталогов внутри указанного каталога
-f или —silent, —quiet подавляет вывод сообщений об ошибках или предупреждениях
-v или —verbose выводит подробный отчет о каждом изменении прав доступа
-c или —change ключ действует аналогично ключу —verbose. Он выводит информацию только если с файлом или директорией были произведены какие-либо действия

Символьная нотация

chmod [ugoa] [+-=] [rwx] файл(ы)

[ugoa] указывает, к кому применяются изменения:

uвладелец файла
gгруппа файла
oостальные пользователи (не владелец и не входящие в группу)
aвсе (при использовании заменяет собой ugo)

[+-=] определяет, что нужно сделать с разрешениями:

+добавить разрешение
:удалить разрешение
=установить разрешение точно (заменить текущие разрешения)

— [rwx] представляет собой комбинацию символов `r`, `w` и `x`, обозначающих разрешения:

r разрешение на чтение
w разрешение на запись
x разрешение на выполнение

Примеры использования.

chmod u+x файлдобавить право выполнения для владельца файла
chmod go-rw файлудалить право чтения и записи для группы и остальных пользователей
chmod a=rwx файлустановить полные права (чтение, запись и выполнение) для всех

Числовая нотация

Числовая нотация состоит из трех цифр, где каждая цифра представляет разрешения для владельца, группы и остальных пользователей соответственно. Каждая цифра состоит из суммы разных значений, присвоенных разным разрешениям:

4разрешение на чтение (read)
2разрешение на запись (write)
1разрешение на выполнение (execute)
0отсутствие разрешения

Посмотреть числовую нотацию для папки или файла

 stat -c "%a %n" conf

Для установки конкретных разрешений, сложите соответствующие значения:

chmod 644 myfile Данная команда установит права -rw-r—r—, где владелец имеет права на чтение и запись, а группа и остальные пользователи могут только читать файл
chmod 755 script.shЭта команда поможет установить права -rwxr-xr-x, где владелец имеет полные права, а остальные пользователи могут только читать и выполнять скрипт
КомандаОписание
rw------- (600)Только владелец имеет права на чтение и запись.
-rw-r--r-- (644)Только владелец имеет права на чтение и запись; группа и другие могут только читать.
-rwx------ (700)Только владелец имеет права на чтение, запись и выполнение.
-rwxr-xr-x (755)Владелец имеет права на чтение, запись и выполнение; группа и другие могут только читать и выполнять.
-rwx--x--x (711)Владелец имеет права на чтение, запись и выполнение; группа и другие могут только выполнять.
-rw-rw-rw- (666)Все могут читать и писать в файл. (Будьте осторожны с этими разрешениями).
-rwxrwxrwx (777)Все могут читать, писать и выполнять. (Опять же, эта настройка разрешений может быть опасной).

Вот некоторые общие настройки для каталогов:

КомандаОписание
drwx------ (700)Только пользователь может читать и писать в этом каталоге.
drwxr-xr-x (755)Все могут читать этот каталог, но его содержимое может изменять только пользователь.

Изменения прав для каталога

Как и для обычных файлов, вы можете изменять права доступа для каталогов с помощью команды chmod. Права доступа к каталогам контролируют, какие операции можно выполнять внутри каталога: просмотр его содержимого, создание, удаление файлов и каталогов внутри него и так далее.

Для изменения прав доступа к каталогу используется та же числовая и символьная нотация, которую мы рассматривали ранее. Укажите имя каталога, к которому вы хотите применить изменения прав доступа вместо имени файла. Давайте рассмотрим примеры в двух нотациях.

Символьная нотация

chmod u+rwx директориядобавить владельцу каталога права на чтение, запись и выполнение
chmod go-r директорияудалить права на чтение для группы и остальных пользователей для каталога
chmod a+rx директорияпредоставить всем пользователям права на чтение и выполнение для каталога

Числовая нотация

chmod 700 директория — установить права -rwx—— для владельца каталога, позволяя ему читать, записывать и выполнять операции внутри него, но никаким другим пользователям.

chmod 755 директория — предоставить владельцу полные права -rwxr-xr-x, а остальным пользователям право только на чтение и выполнение.chmod 644 директория — предоставить права на чтение и запись для владельца каталога, а остальным пользователям и группам оставить только на чтение содержимого.

Рекурсивное применение команды chmod

Чтобы выполнить рекурсивное изменение прав доступа, используйте флаг -R или —recursive с командой chmod. Например:

chmod -R 755 каталог — установит права -rwxr-xr-x для всех файлов и каталогов внутри указанного каталога и самого каталога. chmod -R u+rwx,go-rwx каталог — добавит владельцу права на чтение, запись и выполнение, а группе и остальным пользователям уберет все права для всех файлов и каталогов в указанной директории и её подкаталогах. Рекурсивное изменение прав доступа — отличный инструмент для обновления разрешений для файлов и каталогов одновременно.

chmod –reference=RFILE file

Важно отметить, что —reference не просто добавляет или удаляет определенные разрешения, а полностью перезаписывает права доступа целевого элемента.

Linux Special Permissions (SUID / SGID / Sticky)

Бит Где применяется Обозначение Число Описание
SUID файл rws—— 4xxx Запуск от имени владельца файла
SGID файл —rws— 2xxx Запуск от имени группы файла
SGID директория —rws— 2xxx Наследование группы для новых файлов
Sticky директория ——–t 1xxx Только владелец может удалять файлы

Обозначения

Символ Значение
s execute есть + установлен SUID/SGID
S execute НЕТ, но бит установлен (ошибка)
t execute есть + sticky bit
T execute НЕТ, но sticky установлен

Установка

Действие Команда
Установить SUIDchmod u+s file
Установить SGIDchmod g+s file/dir
Установить Stickychmod +t dir
Установить SUID (числом)chmod 4755 file
Установить SGID (числом)chmod 2755 dir
Установить Sticky (числом)chmod 1777 dir

Проверка

Задача Команда
Найти все SUID файлы find / -perm -4000 -type f 2>/dev/null
Найти все SGID файлы find / -perm -2000 -type f 2>/dev/null
Найти writable SUID (опасно) find / -perm -4000 -type f -writable 2>/dev/null
Проверить /tmp ls -ld /tmp

Примеры

# SUID пример
ls -l /usr/bin/passwd
# -rwsr-xr-x
 
# SGID директория
mkdir shared
chmod 2775 shared
 
# Sticky (как /tmp)
chmod 1777 /tmp

Важные нюансы

Практика

# Безопасная общая директория
mkdir /shared
chmod 2775 /shared
 
# Общий tmp с защитой
mkdir /shared/tmp
chmod 1777 /shared/tmp

Расширенная работа с правами ACL (getfacl / setfacl)

Установка

apt-get install acl

Проверка поддержки ACL файловой системой:

mount | grep acl

Если нет — добавить в /etc/fstab:

UUID=xxx / ext4 defaults,acl 0 1

Что такое ACL

ACL (Access Control List) — расширенные права доступа, дополняют стандартные rwx.

Позволяют:


Просмотр ACL

Получить ACL:

getfacl /tmp/file.txt

Показать только access ACL:

getfacl -a /tmp/file.txt
getfacl --access /tmp/file.txt

Показать default ACL:

getfacl -d /tmp/dir
getfacl --default /tmp/dir

Пример вывода

# file: filename
# owner: geek
# group: geek
user::rw-
user:andy:r--
user:bob:r--
user:james:rwx
group::r--
mask::rwx
other::r--

Расшифровка

Поле Описание
user:: права владельца
user:username: права конкретного пользователя
group:: права группы
mask:: максимальные эффективные права
other:: права остальных

⚠️ ВАЖНО: mask ограничивает ВСЕ user/group ACL


Установка ACL (setfacl)

Добавить права пользователю:

setfacl -m u:andy:rwx file.txt

Добавить права группе:

setfacl -m g:devs:r-x file.txt

Удалить ACL:

setfacl -x u:andy file.txt

Очистить все ACL:

setfacl -b file.txt

Default ACL (наследование)

Установить default ACL для директории:

setfacl -d -m u:andy:rwx /shared

Теперь все новые файлы унаследуют права

Проверка:

getfacl /shared

Маска (mask)

Пример:

setfacl -m u:andy:rwx file.txt

Но если:

mask::r--

👉 итоговые права будут r–, а не rwx

Пересчитать mask:

setfacl -m m:rwx file.txt

или автоматически:

setfacl --mask file.txt

Полезные ключи getfacl

Ключ Описание
-a только access ACL
-d default ACL
-c без заголовка
-e показать effective права
-E скрыть effective
-s пропустить базовые ACL
-R рекурсивно
-L следовать симлинкам
-P не следовать симлинкам
-t табличный формат
-p абсолютные пути
-n UID/GID вместо имен

Примеры:

getfacl -R /tmp
getfacl -e /tmp/file.txt
getfacl -n /tmp/file.txt

Практика (реальные кейсы)

Общая директория DevOps

mkdir /shared
chown root:devs /shared
chmod 2775 /shared
setfacl -d -m g:devs:rwx /shared

👉 все файлы:


Дать доступ пользователю без смены владельца

setfacl -m u:backup:r-- /etc/passwd

Рекурсивное применение

setfacl -R -m u:andy:rwx /project

Безопасность

⚠️ Проверка ACL в системе:

getfacl -R / 2>/dev/null

⚠️ Потенциальные риски:


Быстрая шпаргалка

Действие Команда
Посмотреть ACL getfacl file
Добавить user setfacl -m u:user:rwx file
Добавить group setfacl -m g:group:r-x file
Удалить ACL setfacl -x u:user file
Очистить ACL setfacl -b file
Default ACL setfacl -d -m u:user:rwx dir