Понимание режимов файловой системы Linux

Я прочитал более чем 10 статей, и пытаюсь перенести мою голову вокруг файловой системы Linux. Существует одна точка, я пытаюсь получить это, я не могу выяснить. Простите мне за звучание очень немым:

При списке деталей файла я получаю числовой "режим" файла, который обращается к его полномочиям. Некоторые режимы в качестве примера:

33206
16822

Так или иначе они, кажется, должны преобразовать в octals и взгляд что-то как:

0777

Оттуда, можно, по-видимому, вывести человекочитаемые полномочия, такие как:

drwxr-xr-x
-rwxr--r--

Я пытаюсь выяснить, как добираются от этого первого шага до третьего. И я полностью потерян.

1
задан 6 August 2015 в 10:59

4 ответа

Первый набор чисел - вероятно, ничто, чтобы сделать с набором полномочий для файла. Если Вы получили эту информацию с помощью ls -l затем, что число соответствует размеру файла в байтах.

восьмеричные значения не отображены в этом формате, но 'человекочитаемое'. Способ, которым я помню octals, состоит в том, что первая из этих четырех цифр относится к специальным битам (setuid, setgid, липкий), это для более усовершенствованного использования, таким образом, я немедленно не волновался бы о них. Затем каждый человекочитаемый набор rwx составляет значение следующих 3 цифр, которые заказаны владельцем, группой и всеми. r=4, w=2 и x=1, таким образом, чтение-запись 4+2=6.

страница справки Ubuntu довольно ясна, я думаю.

я также предложил бы использовать ls -lh для списка файлов, поскольку размер файла преобразовывается в человекочитаемый, таким образом, он производится, находится в Килобайтах, Мегабайтах и Гигабайтах.

4
ответ дан 3 December 2019 в 06:19

Если Вы подразумеваете под "десятичной записью" "восьмеричная нотация": и восьмеричные и символьные нотации передаются между *, отклоняют пользователей.

В особенности уведомление, которое в полномочиях в восьмеричном и символах может быть разделено в 3 частях. Как так:

rwx | r-x | r-x
7   | 5   | 5

Теперь смотрят на положение каждой буквы.

  • В первой части, это верно, верно, верно (или набор, набор, набор). Что такое номер 7 в восьмеричном? 111.

  • Второе разрешение? набор, сброс, установлен. Восьмеричные 5? 101. Поскольку Вы видите, что восьмеричная нотация в битах соответствует буквам для устанавливания/сбрасывания.

Что касается 3 наборов, это - владелец, что группа пользователя, и другие пользователи и полномочия групп. В примере выше, владелец может считать запись и выполниться, но пользователи в группе владельца и другие пользователи не могут записать, они могут только считать и выполнить файл.

4
ответ дан 3 December 2019 в 06:19

Можно получить значение octals с:

stat -c "%a %n" file

Однако существует тонны калькулятора полномочий файла онлайн:

и многое другое...

2
ответ дан 3 December 2019 в 06:19

Спасибо за всю справку и подсказки других ответов. Я использовал их и несколько других находок для соединения следующих решений для преобразования в JS:

converter = {

    listing: {
      '0': '---',
      '1': '--x',
      '2': '-w-',
      '3': '-wx',
      '4': 'r--',
      '5': 'r-x',
      '6': 'rw-',
      '7': 'rwx'
    },

    modeToRWX(mode) {
      let octal = this.modeToOctal(mode);
      let rwx = this.octalToRWX(octal);
      return rwx;
    },

    modeToOctal(mode) {
      let octal = '0' + (mode & 0o777).toString(8);
      return octal;
    },

    octalToRWX(octal) {
      if (!octal) { return void 0; }
      const list = this.listing;
      let full = String((octal.length === 4) ? octal : '0' + octal);
      let a = list[String(octal).charAt(1)];
      let b = list[String(octal).charAt(2)];
      let c = list[String(octal).charAt(3)];
      return a + b + c;
    }

}
1
ответ дан 3 December 2019 в 06:19

Другие вопросы по тегам:

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