9.8. Назначение разрешений по умолчанию с использованием маски umask
Проблема
Файлы создаются с некоторым стандартным набором разрешений по умолчанию. Как задать эти разрешения?
Решение
Разрешения по умолчанию определяются маской umask. Чтобы узнать текущее состояние маски, введите команду:
$ umask
0022
ИЛИ
$ umask -S
u=rwx,g=rx,o=rx
Чтобы временно назначить новую маску до конца текущего сеанса, введите команду:
$ umask 0002
Долгосрочное изменение маски umask обеспечивается включением строки umask хххх в файл ~/.bashrc. Часто используемые значения umask перечислены в таблице ниже:
Umask | Пользователь | Группа | Прочие |
---|---|---|---|
0002 | Все | Чтение и исполнение | Чтение и исполнение |
0022 | Все | Чтение и исполнение | Чтение и исполнение |
0007 | Все | Нет | Нет |
0077 | Все | Нет | Нет |
Когда программа (например, текстовый редактор или компилятор) создаёт файл, она обычно использует разрешения 0666 или 0777. Если программа создает исполняемый файл, то устанавливаются разрешения 0777. Однако чаще всего используются значения 0666, из-за чего для сценариев приходится вручную задавать права на выполнение командой chmod +x.
Маска umask позволяет исключить лишние разрешения. Например, при назначении маски umask 0002, обычным файлам будут назначаться разрешения 0664, а исполняемым — 0775, что предотвращает открытый доступ для записи.
Комментарий
В таблице 9.4 показано, как составить маску umask для любой комбинации разрешений.
Umask | Разрешения файлов | Разрешения каталогов |
---|---|---|
7 | Нет | Исполнение |
6 | Запись | Запись |
5 | Запись | Запись и исполнение |
4 | Чтение | Чтение |
3 | Чтение и запись | Чтение и исполнение |
2 | Чтение и запись | Чтение и запись |
1 | Чтение и запись | Чтение, запись и исполнение |
0 | Чтение и запись | Чтение, запись и исполнение |
См. также