umask
отображает и устанавливает маски разрешений файлов. Утилита umask используется для управления маской режима создания файла, которая определяет начальное значение битов разрешения для вновь создаваемых файлов. Поведение этой утилиты стандартизировано POSIX и описано в Руководстве программиста POSIX. Поскольку umask влияет на текущую среду выполнения оболочки, она обычно реализуется как встроенная команда оболочки.
Маска режима содержит биты разрешения, которые не должны быть установлены для вновь создаваемого файла, поэтому она является логическим дополнением к битам разрешения, устанавливаемым для вновь создаваемого файла. Если любой бит в маске установлен в 1, соответствующие разрешения для вновь создаваемого файла будут отключены. Таким образом, маска действует как фильтр, удаляющий биты разрешений и помогающий установить доступ к файлам по умолчанию.
Настройка маски разрешений для созданных файлов применяется к PREMISES. Если разрешения не указаны, выводится текущее значение маски. Если разрешения начинаются с цифры, они интерпретируются как восьмеричное число, в противном случае – как строка символьных разрешений, как в команде chmod
.
Синтаксис
umask [-p] [-S] [uprawnienia]
Опции
-p
: если UPDATE опущен, выводить в форме, пригодной для повторного использования, как input-S: выводить в символьном виде;- без этой опции – в восьмеричном
Разрешения
Разрешения | Двоичное значение | Двоичное значение | |
---|---|---|---|
Нет разрешения | - | 0 | 000 |
Разрешение на выполнение | -x | 1 | 001 |
Разрешение на запись | 2 | 010 | |
Разрешение на запись и выполнение | -wx | 3 | 011 |
Разрешение на чтение | r- | 4 | 100 |
Разрешение на чтение и выполнение | r-w | 5 | 101 |
Разрешение на чтение и запись | rw- | 6 | 110 |
Разрешение на чтение, запись и выполнение | rwx | 7 | 111 |
Как вычислить значение umask?
umask 0002
Первая цифра – 0, называется постоянным битом и является специальным средством защиты. Следующие три цифры представляют собой восьмеричные значения umask для файла или каталога. В приведенном выше примере команда umask выводит 0002, мы не будем пока беспокоиться о первом 0. Следующие три цифры – 002.
Каждая цифра обозначает отдельный класс пользователя. В Linux существует в общей сложности 3 класса пользователей:
- владелец
- члены группы
- все остальные.
Приведенный выше результат 002 показывает, что доступ для владельца равен 0, доступ для членов группы равен 0, а доступ для всех равен 2. 2 – это восьмеричное значение. Чтобы понять разрешения доступа, нам нужно преобразовать его в десятичное, 2 равно 010 в двоичном формате, что можно объяснить следующим образом: 0 для чтения, 1 для записи и 0 для выполнения. Приведенный выше результат говорит: для всех разрешена только запись.
Примеры*
Мы можем устанавливать и обновлять значение umask по умолчанию с помощью команды umask, за которой следует параметр, который должен быть целым числом в диапазоне 000-777.
umask 543
Когда мы создаем новый каталог, разрешения будут вычисляться как полные разрешения каталога – значение umask, то есть 777 – 543 = 234, что можно объяснить так:
- 2 для владельца, то есть 010 в двоичном формате, то есть разрешения на запись для владельца
- 3 для членов группы, то есть 011 в двоичном формате, то есть разрешения на запись и выполнение для членов группы
- 4 для всех остальных, то есть 100 в двоичном формате, то есть разрешения только на чтение для всех остальных.
ls -lh d-w--wxr--
Результат показывает: d здесь означает каталог, а последние 3 – разрешения для соответствующих пользователей.
С помощью umask можно также использовать символическую нотацию. Ниже в команде umask u-w
, u означает пользователя, – используется для удаления разрешений, а w означает разрешение на запись.
umask u -w
Использование символа <пробел> вместо – предоставит пользователю соответствующие разрешения. Вы также можете использовать символ r, который используется для разрешения чтения. т. е. umask u rw
umask u+w
Более подробную информацию о команде umask можно получить, набрав: man umask<br />
umask --help
.
Комментарии (0)