umask
Тема дорожной карты · Linux & Unix Fundamentals
umask — это ключевой параметр, который определяет, какие права доступа будут автоматически применены к новым файлам и директориям при их создании. Это важный инструмент для управления безопасностью и доступом к файловой системе, особенно в многопользовательской среде.
Как это работает
umask использует систему owner / group / other × read / write / execute для определения прав доступа. Например, команда ls -l может вывести строку rwxr-xr--, где r означает право на чтение, w — на запись, а x — на выполнение. Команда chmod 644 file устанавливает конкретные биты доступа для файла, а команда chown user:group file меняет владельца и группу файла. Восьмеричная нотация 755 эквивалентна символьной записи rwxr-xr-x.
Существуют специальные биты доступа, такие как setuid (запуск программы под правами владельца), setgid (наследование группы), и sticky (ограничение удаления файла только для владельца в общей директории типа /tmp). Кроме того, существуют сверхклассические UNIX-биты, такие как ACL (setfacl, getfacl), capabilities (setcap), и метки SELinux/AppArmor.
Когда применять
По умолчанию, следует придерживаться принципа наименьших привилегий: 644 для файлов, 755 для директорий, и 600 для секретных файлов. Группы могут быть использованы для обеспечения общего доступа, но добавление большого количества пользователей в группы, такие как wheel или sudo, может быть нежелательным. Директории с правами 777 (чтение, запись и выполнение для всех) почти всегда являются ошибкой, так как они предоставляют слишком широкий доступ.
ACL (Access Control Lists) могут быть полезны для управления доступом к файлам и директориям в более детализированном виде, что может быть особенно полезно для CI-пайплайнов и деплоя пользователей. Команда capabilities может использоваться для предоставления определенных прав доступа без необходимости предоставления полного доступа root.
Типичные ошибки
Одна из распространенных ошибок с umask — это попытка изменить права доступа файлов с помощью команды chmod 777, что может привести к уязвимости безопасности. Также распространенной ошибкой является использование команды chown -R на неправильной директории, что может привести к тому, что пользователь больше не сможет получить доступ к файловой системе или стать root. Непонимание того, как umask влияет на права доступа новых файлов, также является распространенной ошибкой. Например, дефолтное значение 0022 для umask автоматически убирает право на запись у групп и других пользователей.