Права доступа: chown, chmod, umask
Права доступа в Linux: chown, chmod числовая и символьная нотация, umask — кто владеет файлами и что с ними можно делать.
Каждый файл в Linux имеет владельца (пользователя и группу) и набор прав доступа: read, write, execute — для владельца, группы и всех остальных.
Просмотр прав: ls -l
ls -l report.txt
Вывод:
-rw-r--r-- 1 alice developers 1024 Jun 10 12:00 report.txt
Разбор строки:
-rw-r--r--— тип файла и права (10 символов)alice— владелец-пользовательdevelopers— владелец-группа
Десять символов прав: первый — тип (- файл, d каталог, l ссылка); затем три тройки rwx для владельца, группы и остальных.
Изменение владельца: chown
# Сменить владельца файла
sudo chown bob report.txt
# Сменить и владельца, и группу
sudo chown bob:developers report.txt
# Рекурсивно — на весь каталог
sudo chown -R alice:alice /home/alice/docs
Символьная нотация chmod
Используйте буквы u (user), g (group), o (other), a (all) с операторами +, -, = и правами r, w, x.
Команда | Действие |
| добавить execute владельцу |
| убрать write у группы |
| остальным — только read |
| добавить read всем |
# Сделать скрипт исполняемым
chmod u+x deploy.sh
ls -l deploy.sh
Вывод:
-rwxr--r-- 1 alice alice 256 Jun 10 12:05 deploy.sh
Числовая нотация chmod
Каждое право — бит: r=4, w=2, x=1. Сумма даёт цифру для каждой тройки.
Число | Права | rwx |
7 | rwx | 4+2+1 |
6 | rw- | 4+2+0 |
5 | r-x | 4+0+1 |
4 | r-- | 4+0+0 |
0 | --- | 0+0+0 |
# 755: владелец rwx, группа r-x, остальные r-x
chmod 755 script.sh
# 644: владелец rw-, группа r--, остальные r--
chmod 644 config.txt
# 600: только владелец может читать и писать (закрытый ключ)
chmod 600 ~/.ssh/id_rsa
umask — маска по умолчанию
umask задаёт права, которые убираются при создании новых файлов и каталогов.
# Посмотреть текущую маску
umask
Вывод:
0022
Файлы создаются с базовыми правами 666, каталоги — 777. Маска 022 вычитается: файлы получают 644, каталоги — 755. Это защищает от случайного открытия записи группе и всем.
# Установить более строгую маску (файлы 640, каталоги 750)
umask 027
# Временно создать файл с ограниченными правами
touch secret.txt
ls -l secret.txt
Вывод:
-rw-r----- 1 alice alice 0 Jun 10 12:10 secret.txt
Значение
umaskдействует только в текущей сессии. Чтобы сделать постоянным, добавьтеumask 027в~/.bashrcили/etc/profile.
Коротко
ls -l— показывает права, владельца и группу файла.chown пользователь:группа файл— сменить владельца;-R— рекурсивно.- Символьная нотация:
chmod u+x,chmod go-wи т.д. - Числовая нотация: r=4, w=2, x=1; 755 = rwxr-xr-x, 644 = rw-r--r--.
umask— маска, убирающая права при создании файлов (обычно 022).