Sobes.tech
Junior

Какво е umask?

sobes.tech AI

Отговор от AI

Umask (съкратено от user file-creation mode mask) е команда в операционните системи тип Unix/Linux, която задава маската за права по подразбиране за новосъздадените файлове и директории. Тя представлява набор от битове, които се изключват от пълните права (777 за директории, 666 за файлове) при създаването на обект.

Представяне на umask:

  • Обикновено umask се представя като триизрчен октален код, например 022. Всяка цифра съответства на правата за собственика, групата и всички останали потребители.
  • Битовете на маската се инвертират спрямо желаните права. Например, за деактивиране на правото за писане (2) за групата, съответният бит ще бъде зададен в umask.

Изчисляване на крайните права:

Крайните права за достъп за нов файл/директория се изчисляват като:

Резултат = Начални_права И (НЕ umask)

Където:

  • Начални_права за файл = 666 (rw-rw-rw-)
  • Начални_права за директория = 777 (rwxrwxrwx)
  • НЕ umask - битовото НЕ на стойността на umask. При използване на октален код, всяка цифра на umask се изважда от 7.

Пример: umask = 022

  • За файл: 666 И (НЕ 022) = 666 И 755 = 644 (rw-r--r--)
  • За директория: 777 И (НЕ 022) = 777 И 755 = 755 (rwxr-xr-x)

Преглед и задаване на umask:

  • Преглед на текущия umask:

    # Показва umask в октален формат
    umask
    
    # Показва umask в символен формат
    umask -S
    
  • Задаване на нов umask:

    # Задава umask в октален формат
    umask 027
    
    # Задава umask в символен формат
    umask u=rwx,g=rx,o=r
    

Umask е важен инструмент за осигуряване на базова сигурност на файловата система, като задава разумни права по подразбиране за новите обекти.