umask

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

umask (от англ. user file creation mode mask — маска режима создания пользовательских файлов) — функция среды POSIX, изменяющая права доступа, которые присваиваются новым файлам и директориям по умолчанию. Права доступа файлов, созданных при конкретном значении umask, вычисляются при помощи следующих побитовых операций (umask обычно устанавливается в восьмеричной системе счисления):

побитовое И между унарным дополнением аргумента (используя побитовое НЕ) и режимом полного доступа.

Режим полного доступа для файлов — 777, для директорий — 666. Многие оболочки UNIX предоставляют команду umask, которая влияет на все дочерние процессы, исполняемые в этой оболочке.

Фактически, umask указывает, какие биты следует сбросить в выставляемых правах на файл — каждый установленный бит umask запрещает выставление соответствующего бита прав. Исключением из этого запрета является бит исполняемости,который для обычных файлов зависит от создающей программы (трансляторы ставят бит исполняемости на создаваемые файлы, другие программы — нет), а для каталогов следует общему правилу. umask 0 означает, что следует (можно) выставить все биты прав (rwxrwxrwx), umask 777 запрещает выставление любых прав.

Примеры[править | править исходный текст]

Допустим, что значение umask равняется 174, тогда каждый новый файл будет иметь права доступа 602, а каждая новая директория 603:

                  (rwx rwx rwx)
          1748  = (001 111 100)2
       НЕ(1748) = (110 000 011)2
          6668  = (110 110 110)2
                 --------------
6668 И НЕ(1748) = (110 000 010)2 = 6028 = (rw- --- -w-)
          1748  = (001 111 100)2
       НЕ(1748) = (110 000 011)2
          7778  = (111 111 111)2
                 --------------
7778 И НЕ(1748) = (110 000 011)2 = 6038 = (rw- --- -wx)

В bash:

 $ umask 0174
 $ mkdir директория
 $ touch файл
 $ ls -l
 drw-----wx 2 dave dave 512 Sep  1 20:59 директория
 -rw-----w- 1 dave dave   0 Sep  1 20:59 файл

См. также[править | править исходный текст]

  • chmod — программа для изменения прав доступа к файлам и директориям.

Ссылки[править | править исходный текст]