Привет! Я прохожу курс “от 0 до Linux админа” на сайте Курс Linux, и у меня возник вопрос по поводу логики работы umask (пользовательских масок).
Я понимаю, что umask задает базовые права доступа при создании файлов и директорий, но мне не очень нравится процесс вычитания прав. Почему программы, создающие файлы, не могут устанавливать начальные права в зависимости от типа файла (директории, обычные файлы, сокеты, символические ссылки и т.д.)?
У нас уже есть глобальные базовые права и umask, применяемый для разных процессов. Почему бы не сделать так, чтобы начальные права менялись в зависимости от процесса? Зачем идти длинным путем, вычитая из базовых прав, чтобы получить фактические права?
Привет! Я тут пробовал разобраться с логикой работы маски пользователя (umask), но, честно говоря, не всё получилось.
Сначала я думал, что всё просто — нагуглил, что эта маска вроде как управляет правами доступа к файлам и директориям, которые создаются. Я запускал разные команды в терминале и пытался изменить умаску, но что-то не сходилось. Например, изменил её на 022, а потом создаю директорию и смотрю, а права выставляются не так, как я хотел. Всё равно кому-то дофига прав дают, а кому-то наоборот, только для чтения.
Потом я пытался понять, как эта маска вообще работает в паре с созданием файлов и папок. По итогу, как бы я ни гуглил, чётко в голове не уложилось, что зачем. 
Но потом я наткнулся на классные курсы, которые реально помогли прояснить ситуацию! Заценил информацию на Yodo. Там много всего по программированию, и umask тоже разобрали. Весьма полезно было — стал чуть лучше понимать, как всё это дело работает.
В общем, если сам тоже пытаешься в этом разобраться, рекомендую глянуть курс — может, тебе это тоже пригодится!