Какво е umask?

umask (маска за режим на създаване на файлове на потребител) е настройка в Linux и Unix, която контролира разрешенията по подразбиране, присвоени на новосъздадени файлове и директории. Вместо да задавате разрешения директно, umask определя кои битове на разрешенията трябва да бъдат премахнати от системните подразбирания при създаване на нов файл или директория.

Системата започва с базово разрешение от 666 (четене и писане за всички) за файлове и 777 (четене, писане и изпълнение за всички) за директории. Umask се изважда побитово от тези подразбирания, използвайки логическа операция AND-NOT, което произвежда крайните разрешения. Например, с umask от 022, новите файлове получават 644, а новите директории 755.

Всяка цифра на umask съответства на клас разрешения: първата цифра влияе на собственика, втората на групата, а третата на останалите. Цифра 0 означава, че не се маскират разрешения, докато 7 премахва всички разрешения за този клас.

Описание на инструмента

Калкулаторът за Linux umask преобразува стойност на umask и базово разрешение в получените ефективни разрешения както в осмична, така и в символична нотация. Той също генерира точната команда на shell umask, помагайки на системните администратори, разработчици и DevOps инженери да преглеждат резултата от всеки umask преди да го приложат към shell, скрипт или системна конфигурация.

Примери

Umask Base Резултатна осмична Символична
022 666 644 rw-r--r--
022 777 755 rwxr-xr-x
077 666 600 rw-------
027 777 750 rwxr-x---
002 666 664 rw-rw-r--

Функции

  • Изчислява резултатни осмични и символични разрешения от всеки umask
  • Поддържа както 3-цифрени, така и 4-цифрени (със водещ sticky/setuid бит) стойности на umask
  • Често използвани предварителни настройки на umask (022, 027, 077, 002, 007, 000)
  • Предварителни настройки на базово разрешение за файлове (666) и директории (777)
  • Генерира готовата за използване команда на shell umask

Случаи на използване

  • Укрепване на сървър: Преглед на по-строг umask като 077 преди добавянето му към /etc/profile или конфигурацията на shell на потребител, за да се гарантира, че новите файлове са приватни.
  • Споделени среди за разработка: Проверка, че 002 или 007 произвежда файлове, които могат да се пишат от група, за директории на съвместни проекти.
  • Скриптове за развертане: Потвърждение, че umask, използван в CI/CD конвейери или входни точки на контейнери, ще произведе очакваните разрешения на файлове за логове на приложения и качени активи.

Как работи

Крайното разрешение се изчислява за всеки клас (собственик, група, останалите), използвайки формулата:

final = base AND (NOT umask)

Всяка осмична цифра се обработва независимо. За цифра на umask от 2 (двоична 010) и базова цифра от 6 (двоична 110), резултатът е 110 AND NOT 010 = 100, което е равно на 4 (само четене). Водещата цифра на 4-цифрен umask контролира специални битове (setuid, setgid, sticky) и се игнорира при стандартното изчисление на разрешения.

Съвети

  • Използвайте 666 като база, за да видите разрешения за нови файлове, и 777 за нови директории.
  • Umask от 000 означава, че не се премахват разрешения — полезен само в строго контролирани, изолирани среди.
  • За да направите umask постоянен, добавете генерираната команда към ~/.bashrc, ~/.profile или /etc/profile в зависимост от обхвата, който желаете.