Пользовательские команды |
umask(1) |
umask - получение или установка маски режима создания файлов
Утилита umask задает маску режима создания файла в текущей среде командного интерпретатора равной значению, задаваемому операндом маска. Эта маска влияет на начальное значение битов прав доступа всех создаваемых далее файлов. Если umask вызвана в порожденном командном интерпретаторе или в отдельной среде выполнения, например, так:
(umask 002) nohup umask ... find . -exec umask ...
она не влияет на маску режима создания файлов в вызывающей среде. Поэтому утилиту /usr/bin/umask нельзя использовать для изменения маски в текущем сеансе. Ее действие ограниичивается проверкой значения маски вызывающего сеанса. Чтобы изменить маску текущего сеанса, необходимо использовать одну из встроенных команд интерпретаторов.
Если операнд маска не указан, утилита umask выдает в стандартный выходной поток значение маски режима создания файлов вызывающего процесса.
Маска режима создания файла устанавливается равной ooo. Три восьмеричные цифры задают права на чтение/запис/выполнение для владельца, группы-владельца и всех прочих пользователей, соответственно (см. chmod(1), chmod(2) и umask(2)). Значение каждой указанной цифры вычитается из соответствующей "цифры", задаваемой системой при создании файла (см. creat(2)). Например, команда umask 022 отбирает право записи у группы и прочих пользователей (файлы, обычно создаваемые с правами 777, создаются с правами 755; файлы, создаваемые с правами 666, создаются с правами 644).
См. выше описание работы встроенной команды umask в командном интерпретаторе Bourne shell (sh).
Маска создания файла для пользователя устанавливается равной указанной маске. Маску можно задавать либо восьмеричным числом, либо символьным значением, как описано на странице справочного руководства chmod(1). Если указано символьное значение, новое значение umask value is the complement of the result of applying mask to the com- plement of the previous umask value. If mask is omitted, the current value of the mask is printed.
Поддерживается следующая опция:
-S | Выдает результаты в символьном виде. |
Стандартный стиль выдачи результата не задается, но будет распознаваться при последующем вызове команды umask в той же системе в качестве операнда маска для восстановления прежней маски режима создания файла.
Поддерживается следующий операнд:
Если маска задана в символьном виде, новым значением маски режима создания файла будет логическое дополнение битов прав доступа к файлу, задаваемых соответствующей строкой.
При задании маски в символьном виде, операторы относительного изменения прав доступа + и - применяются к текущей маске режима создания файла. Оператор + сбрасывает биты соответствующих прав доступа в маске, а оператор - устанавливает их.
Интерпретация прав доступа, задающих старшие 3 бита прав, не определена.
Маска режима создания файла получает результирующее числовое значение.
Стандартный результат предыдущего вызова umask в той же системе без операндов можно использовать в качестве маски. Использование операнда, полученного таким образом, поддерживается, даже если он представляет собой восьмеричное число.
Если операнд маска не указан, утилита umask будет выдавать в стандартный выходной поток сообщение, которое в дальнейшем можно использовать как операнд umask.
Если указана опция -S, сообщение будет иметь следующий формат:
"u=%s,g=%s,o=%s\n", <права владельца>, <права группы>, <права прочих>
где в качестве значений будут указаны комбинации букв из набора {r, w, x}; если буква указана, значит, соответствующий бит в маске режима создания файла сброшен.
Если указан операнд маска, в стандартный выходной поток ничего не выдается.
Любая из команд:
umask a=rx,ug+w umask 002
устанавливает маску режима создания так, что у создаваемых далее файлов бит S_IWOTH сброшен.
После установки маски режима создания любой из указанных выше команд, можно получить текущее значение маски с помощью команды umask без параметров:
$ umask 0002
(Формат результата не задается, но старые реализации используют классический формат восьмеричного числа.)
$ umask -S u=rwx,g=rwx,o=rx
Любой из этих результатов можно использовать в качестве операнда маска при следующих вызовах утилиты umask.
Если маска режима создания задана так, как показано выше, команда:
umask g-w
изменяет маску так, что у создаваемых далее файлов биты S_IWGRP и S_IWOTH сброшены.
Команда:
umask - -w
утанавливает такое значение маски, что у создаваемых далее файлов все биты записи сброшены. Учтите, что перед операндами маски r, w, x или любыми другими, начинающимися с дефиса (-), надо указывать еще один дефис, чтобы операнд не интерпретировался как опция.
Описание переменных среды LC_CTYPE, LC_MESSAGES и NLSPATH, влияющих на работу команды umask, см. на странице справочного руководства environ(5).
Команда завершается со следующими статусами выхода:
0 | Маска режима создания файла успешно изменена или операнд маска не указан. |
>0 | Произошла ошибка. |
Описание следующих атрибутов см. на странице справочного руководства attributes(5):
ТИП АТРИБУТА | ЗНАЧЕНИЕ АТРИБУТА |
Доступен в пакете | SUNWcsu |
Последнее изменение: 13 марта 1998 года
Copyright © 2002 В. Кравчук, OpenXS Initiative, перевод на русский язык
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |