umask

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

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

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

Режим полного доступа для файлов — 666, для директорий — 777. Многие оболочки 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 — программа для изменения прав доступа к файлам и директориям.

Ссылки [править]