полномочия файла Unix

Полномочия файла в UNIX часто указываются как восьмеричное число. Почему является восьмеричной предпочтительная основа с этой целью?

3
задан 31.01.2010, 07:52

2 ответа

Поскольку полномочия хранятся в небольшом поле, сгруппированном в 3-разрядных блоках (например, rwx).

Восьмеричный естественный способ описать их, потому что Вам только нужна 1 восьмеричная цифра для точного представления любой последовательности 3 двоичных единиц информации. (Это подобно тому, почему шестнадцатеричный используется в программировании - так как 1 шестнадцатеричная цифра может представить 4 двоичных единицы информации, Вам только нужны 2 шестнадцатеричных цифры для описания 1 байта. Это сводится к тому, которые 8 и 16 полномочия 2, таким образом преобразовывая между восьмеричным и двоичным или шестнадцатеричным, и двоичное действительно легко.)

Эти блоки являются пользователем (иначе владелец), группа и другие. Каждый блок имеет три полномочий описать: читайте, запишите и выполнитесь.

Следовательно полный набор полномочий смотрит что-то как rwxrwxrwx, где каждый - двоичная единица информации. Так, например, 110100100 в двоичном файле становится 644 в восьмеричном, и Вы знаете, что первая восьмеричная цифра для полномочий владельца, второго для полномочий группы и третьего для всех остальных.

13
ответ дан 07.12.2019, 22:48

Существует три различных класса, указанные полномочиями на объекте: Владелец, группа и все остальные. Каждый из этих классов имеет три независимых полномочий, которые могут быть установлены: читайте, запишите и выполнитесь. Это означает, что каждый класс имеет один из восьми наборов полномочий:

  1. Выполниться
  2. Записать
  3. Писать/выполнять
  4. Читать
  5. Читать/выполнять
  6. Чтение-запись
  7. Читать/писать/выполнять
  8. Никакие полномочия

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

Внутренне, полномочия компьютерных магазинов как немного поля. Так, например, при установке полномочий на 644 компьютер мог бы представить это как двоичное число 110100100, или:

 110  |  100  |  100
 rw-  |  r--  |  r--
  6   |   4   |   4
Owner | Group | World

(Заметьте, что двоичные 110 равны восьмеричным 6, и двоичные 100 равны восьмеричным 4).

5
ответ дан 07.12.2019, 22:48

Теги

Похожие вопросы