Основы операционных систем. Практикум


Команда ls с опциями -al. Использование команд chmod и umask - часть 2


/p>

Хозяин файла может изменять права доступа к нему, пользуясь командой chmod.

Создайте новый файл и посмотрите на права доступа к нему, установленные системой при его создании. Чем руководствуется операционная система при назначении этих прав? Она использует для этого маску создания файлов для программы, которая файл создает. Изначально для программы-оболочки она имеет некоторое значение по умолчанию.

Маска создания файлов текущего процесса

Маска создания файлов текущего процесса (umask) используется системными вызовами open() и mknod() при установке начальных прав доступа для вновь создаваемых файлов или FIFO. Младшие 9 бит маски создания файлов соответствуют правам доступа пользователя, создающего файл, группы, к которой он принадлежит, и всех остальных пользователей так, как записано ниже с применением восьмеричных значений:

0400 – право чтения для пользователя, создавшего файл;

0200 – право записи для пользователя, создавшего файл;

0100 – право исполнения для пользователя, создавшего файл;

0040 – право чтения для группы пользователя, создавшего файл;

0020 – право записи для группы пользователя, создавшего файл;

0010 – право исполнения для группы пользователя, создавшего файл;

0004 – право чтения для всех остальных пользователей;

0002 – право записи для всех остальных пользователей;

0001 – право исполнения для всех остальных пользователей.

Установление значения какого-либо бита равным 1 запрещает инициализацию соответствующего права доступа для вновь создаваемого файла. Значение маски создания файлов может изменяться с помощью системного вызова umask() или команды umask. Маска создания файлов наследуется процессом-ребенком при порождении нового процесса системным вызовом fork() и входит в состав неизменяемой части системного контекста процесса при системном вызове exec(). В результате этого наследования изменение маски с помощью команды umask окажет влияние на атрибуты доступа к вновь создаваемым файлам для всех процессов, порожденных далее командной оболочкой.

Изменить текущее значение маски для программы-оболочки или посмотреть его можно с помощью команды umask.

Команда umask

Синтаксис команды

umask [value]

Описание команды

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

Если вы хотите изменить его для Midnight Commander, необходимо выйти из mc, выполнить команду umask и запустить mc снова. Маска создания файлов не сохраняется между сеансами работы в системе. При новом входе в систему значение маски снова будет установлено по умолчанию.




- Начало -  - Назад -  - Вперед -