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

Вам будет нужна минимальная рабочая система, вероятно, от другого дистрибутива, для "загружения" собственного дистрибутива с достаточно, чтобы, по крайней мере, получить gcc или другое выполнение компилятора C. Затем необходимо запустить путем решения того, какие оперативные библиотеки (включая libc) и программное обеспечение включает основу, "no-packages-installed" состояние системы. Затем получите источник к этим библиотекам и программному обеспечению и скомпилируйте их, удостоверьтесь, что все программное обеспечение может найти библиотеки, в которых это нуждается, и начните создавать свою основную среду низкого уровня.

В основном Ваша среда начальной загрузки будет не чем иным как рабочим ядром и абсолютным минимумом, как который необходимо получить основную оболочку, компилятор C и основные вещи rm, cp, tar и материал как эта работа. Следующей вещью, которую необходимо разбудить и работающий после этого, является Perl. После того как Вам создали Вашу основную систему, необходимо сохранить ее и создать некоторые сценарии начальной загрузки, который берет систему от начальной начальной загрузки до применимой оболочки с компилятором.

Затем необходимо разрабатывать/писать систему пакета и формат, и загрузить исходный код на программное обеспечение, Вы хотите упаковать, скомпилировать и упаковать его и разработать устойчивую систему распределения для Ваших пакетов. Ни одно из этого не тривиально.Удачи.

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

Теги

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