Права доступа Linux
Калькулятор прав
Справочник
Обозначения
-rwxr-xr-x 1 david users 4096 Jun 1 file.txt
│└──────────┘ └─────┘└─────┘
│ права владелец группа
│
└─ тип: - файл, d каталог, l ссылка, c символьное уст-во, b блочное уст-во
Права для файлов
| Символ |
Число |
Для файла |
Для каталога |
r |
4 |
Чтение содержимого |
Список файлов (ls) |
w |
2 |
Запись / изменение |
Создание и удаление файлов |
x |
1 |
Выполнение |
Вход (cd), обращение к файлам |
Числовая запись
| Символьная |
Числовая |
Описание |
rwxrwxrwx |
777 |
Все права всем |
rwxr-xr-x |
755 |
Стандарт для исполняемых файлов и каталогов |
rw-r--r-- |
644 |
Стандарт для файлов данных |
rw------- |
600 |
Приватный файл |
rwx------ |
700 |
Приватный каталог |
r-------- |
400 |
Только чтение для владельца |
Специальные биты
| Бит |
Символ |
Число |
Применение |
| SUID |
s в позиции x владельца |
4xxx |
На исполняемых: запуск от имени владельца файла |
| SGID |
s в позиции x группы |
2xxx |
На исполняемых: от имени группы; на каталогах: новые файлы наследуют группу |
| Sticky |
t в позиции x others |
1xxx |
На каталогах: удалять файл может только владелец |
chmod 4755 /usr/bin/passwd # SUID + 755
chmod 2775 /shared/ # SGID + 775 (на каталоге)
chmod 1777 /tmp # Sticky + 777
В символьной записи: chmod u+s file, chmod g+s dir, chmod +t /tmp
Команды
chmod
# Числовая запись
chmod 755 file.txt
chmod -R 644 /var/www/html/ # рекурсивно
# Символьная запись
chmod u+x script.sh # добавить execute владельцу
chmod g-w file.txt # убрать write у группы
chmod o=r file.txt # установить only read для других
chmod a+r file.txt # добавить read всем (a = ugo)
chmod u=rwx,g=rx,o=r file.txt # несколько сразу
chown / chgrp
chown david file.txt # сменить владельца
chown david:users file.txt # владелец и группа
chown :developers /project/ # только группа
chown -R www-data /var/www/ # рекурсивно
chgrp docker /usr/bin/docker # только группа
umask
umask определяет права по умолчанию при создании файлов.
Файл: 666 - umask = итоговые права
Каталог: 777 - umask = итоговые права
| umask |
Файл (666−) |
Каталог (777−) |
022 |
644 (rw-r--r--) |
755 (rwxr-xr-x) |
027 |
640 (rw-r-----) |
750 (rwxr-x---) |
077 |
600 (rw-------) |
700 (rwx------) |
002 |
664 (rw-rw-r--) |
775 (rwxrwxr-x) |
umask # показать текущую маску
umask 022 # установить на сессию
umask -S # символьный вид: u=rwx,g=rx,o=rx
Постоянно: добавить в ~/.bashrc или /etc/profile.
ACL (расширенные права)
getfacl file.txt # просмотр ACL
setfacl -m u:alice:rw file # дать alice rw
setfacl -m g:team:r file # дать группе team r
setfacl -x u:alice file # убрать ACL для alice
setfacl -b file # удалить все ACL
setfacl -R -m u:alice:rw dir/ # рекурсивно
# Дефолтные ACL для новых файлов в каталоге:
setfacl -d -m u:alice:rw /shared/