Сколько битов флаги доступа файла?

Сколько битов в файловой системе Linux поднят для полномочий файла?

7
01.04.2011, 04:08
3 ответа

Добавить к другим ответам:

Традиционные полномочия Unix сломаны на:

  • читайте (r)
  • запишите (w)
  • выполните каталог файла/доступа (x)

Каждый из тех хранится как немного, где 1 средство разрешило и 0 средств, не разрешенных.

Например, доступ только для чтения, обычно записанный r--, хранится как двоичный файл 100, или восьмеричный 4.

Существует 3 набора тех полномочий, который определяет предоставленный доступ для:

  • владелец файла
  • группа файла
  • все другие пользователи

Они все хранятся вместе в той же переменной, например. rw-r-----, значение чтения-записи для владельца, только для чтения для группы и никакого доступа для других, хранится как 110100000 двоичный файл, 640 восьмеричный.

Таким образом, это делает 9 битов.

Затем существует 3 других специальных бита:

  • setuid
  • setgid
  • липкий

Посмотрите man 1 chmod для деталей тех.

И наконец, тип файла хранится с помощью 4 битов, например, является ли это регулярным файлом, или каталогом, или каналом или устройством, или что бы то ни было.

Они все хранятся вместе в inode, и вместе он делает 16 битов.

9
27.01.2020, 20:15
  • 1
    После того, как я был смущен этим сообщением в блоге о полномочиях файла Linux, я почти хотел спросить об этом на УЛ.-SE, но удачный я нашел Ваше объяснение. –  humanityANDpeace 23.02.2014, 09:55

Какие полномочия? Основные полномочия помещаются в 16 битов; ext2 использует 32 бита плюс еще 32 бита для флагов файла (chattr(1)); затем POSIX ACLs использует переменное пространство, кроме того. Посмотрите /usr/include/linux/ext2_fs.h для деталей. (ext3 и ext4 основываются на ext2 и главным образом используют ту же структуру.)

4
27.01.2020, 20:15

Информация о файлах хранится в структуре данных, названной inode. Существует поле в этой структуре для режима, который содержит полномочия. Это поле в моей системе является коротким целым без знака, которое составляет 2 байта и 16 битов.

Смотрите на fs.h в источнике Linux, чтобы лично убедиться.

3
27.01.2020, 20:15