Когда вы создаёте файл в Linux, вы думаете, что указываете ему права доступа. Но на самом деле происходит кое-что более сложное. umask — это скрытый охранник, который удаляет права из ваших файлов без вашего ведома.
Проблема: Файл создался, но прав меньше, чем ожидалось
Представьте ситуацию:
$ touch myfile.txt
$ ls -l myfile.txt
-rw-r--r-- 1 user user 0 Dec 16 10:00 myfile.txt
Вы ожидали, что файл будет доступен для записи группе и другим пользователям. Но этого не произошло. Вместо ожидаемых 0666
rw-rw-rw- вы получили 0644 rw-r--r--.umask — это маска вычитания прав доступа. Это не то, что добавляет права, а то, что их удаляет.
Выглядит это примерно так:
Желаемые права файла: 0666 (rw-rw-rw-)
Текущий umask: 0022 (----w--w-)
Результат (0666 & ~0022): 0644 (rw-r--r--)
Как узнать текущий umask:
$ umask
0022
Как изменить umask в текущей сессии:
$ umask 0077
$ touch secret.txt
$ ls -l secret.txt
-rw------- 1 user user 0 Dec 16 10:00 secret.txt
Постоянно: добавить в
~/.bashrc или ~/.zshrc📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера