Я прочитал более чем 10 статей, и пытаюсь перенести мою голову вокруг файловой системы Linux. Существует одна точка, я пытаюсь получить это, я не могу выяснить. Простите мне за звучание очень немым:
При списке деталей файла я получаю числовой "режим" файла, который обращается к его полномочиям. Некоторые режимы в качестве примера:
33206
16822
Так или иначе они, кажется, должны преобразовать в octals и взгляд что-то как:
0777
Оттуда, можно, по-видимому, вывести человекочитаемые полномочия, такие как:
drwxr-xr-x
-rwxr--r--
Я пытаюсь выяснить, как добираются от этого первого шага до третьего. И я полностью потерян.
Первый набор чисел - вероятно, ничто, чтобы сделать с набором полномочий для файла. Если Вы получили эту информацию с помощью ls -l
затем, что число соответствует размеру файла в байтах.
восьмеричные значения не отображены в этом формате, но 'человекочитаемое'. Способ, которым я помню octals, состоит в том, что первая из этих четырех цифр относится к специальным битам (setuid, setgid, липкий), это для более усовершенствованного использования, таким образом, я немедленно не волновался бы о них. Затем каждый человекочитаемый набор rwx составляет значение следующих 3 цифр, которые заказаны владельцем, группой и всеми. r=4, w=2 и x=1, таким образом, чтение-запись 4+2=6.
страница справки Ubuntu довольно ясна, я думаю.
я также предложил бы использовать ls -lh
для списка файлов, поскольку размер файла преобразовывается в человекочитаемый, таким образом, он производится, находится в Килобайтах, Мегабайтах и Гигабайтах.
Если Вы подразумеваете под "десятичной записью" "восьмеричная нотация": и восьмеричные и символьные нотации передаются между *, отклоняют пользователей.
В особенности уведомление, которое в полномочиях в восьмеричном и символах может быть разделено в 3 частях. Как так:
rwx | r-x | r-x
7 | 5 | 5
Теперь смотрят на положение каждой буквы.
В первой части, это верно, верно, верно (или набор, набор, набор). Что такое номер 7 в восьмеричном? 111.
Второе разрешение? набор, сброс, установлен. Восьмеричные 5? 101. Поскольку Вы видите, что восьмеричная нотация в битах соответствует буквам для устанавливания/сбрасывания.
Что касается 3 наборов, это - владелец, что группа пользователя, и другие пользователи и полномочия групп. В примере выше, владелец может считать запись и выполниться, но пользователи в группе владельца и другие пользователи не могут записать, они могут только считать и выполнить файл.
Можно получить значение octals с:
stat -c "%a %n" file
Однако существует тонны калькулятора полномочий файла онлайн:
и многое другое...
Спасибо за всю справку и подсказки других ответов. Я использовал их и несколько других находок для соединения следующих решений для преобразования в 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;
}
}