Приветствую Вас Гость | RSS

Уже всё СкаченО

Воскресенье, 02.02.2025, 01.56.12
Главная » Статьи » Основы UNIX » Основы операционной системы UNIX

Установка режима создания файла
Новый файл создается с правами доступа, определяемыми пользовательской маской режима создания файлов. Команда umask (встроенная команда интерпретатора) присваивает пользовательской маске режима создания файлов указанное восьмеричное значение. Три восьмеричные цифры соответствуют правам на чтение/запись/выполнение для владельца, членов группы и прочих пользователей, соответственно.

Команда umask имеет следующий синтаксис:
umask [ -S ] [ маска ] 

Если параметры не указаны, команда umask выдает текущее значение маски. По умолчанию, значение выдается и задается в восьмеричном виде как число, которое необходимо "вычесть" из максимальных прав доступа (777 для выполняемых файлов, которые создаются компиляторами, и 666 для обычных файлов):
[kravchuk@arturo 11:22:55 /tmp/d1]$ umask
022
При такой маске обычные текстовые файлы будут создаваться с правами 666 - 022 = 644: 
[kravchuk@arturo 11:33:43 /tmp]$ >f5.txt
[kravchuk@arturo 11:33:48 /tmp]$ ls -l f5*
-rw-r--r-- 1 kravchuk 50 0 Мар 27 11:33 f5.txt

Операция "вычитания" для значения маски формально выполняется как побитовое логическое И дополнения маски и максимальных прав доступа. Рассмотрим пример расчета:Двоичное значение маски: 000010010
Дополнение маски: 111101101
Максимальное значение прав: 110110110
Логическое И предыдущих двух строк: 110100100
Результирующие биты прав: 110100100 (644)


Для выполняемых файлов, создаваемых, например, компилятором языка C:Двоичное значение маски: 000010010
Дополнение маски: 111101101
Максимальное значение прав: 111111111
Логическое И предыдущих двух строк: 111101101
Результирующие биты прав: 111101101 (755)


Опция -S требует выдавать маску в символьном виде, показывая, какие биты прав доступа будут установлены у создаваемого файла (также с учетом того, создается ли выполняемый или обычный текстовый файл):
[kravchuk@arturo 11:23:00 /tmp/d1]$ umask -S
u=rwx,g=rx,o=rx

Команду umask целесообразно включить в файлы начального запуска, задающие среду для начального командного интерпретатора.

Рассмотрим еще один пример создания файла при другом значении маски:
[kravchuk@arturo 11:33:52 /tmp]$ umask 257
[kravchuk@arturo 11:41:39 /tmp]$ umask -S
u=rx,g=w,o=
[kravchuk@arturo 11:41:43 /tmp]$ >f6.txt
[kravchuk@arturo 11:41:55 /tmp]$ ls -l f6*
-r---w---- 1 kravchuk 50 0 Мар 27 11:41 f6.txt

Категория: Основы операционной системы UNIX | Добавил: Fishing (12.10.2009)
Просмотров: 424 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]