Как получить восьмеричную/символьную форму прав доступа?

Здравствуйте!

Есть задача:
Напишите функцию ls2oct, которая переводит набор прав доступа из символьной формы, получаемой на выходе команды ls –l (например, «rwxr–xr––») в эквивалентные восьмеричные значения. Затем напишите обратную функцию oct2ls.


Как я могу, выполнив команду ls -l, записать значения в массив или переменную?

Существуют какие-то готовые функции, или нужно самому писать парсер символьных значений и переводить всё в восьмеричные значения?

Для написания обратного перевода мне нужно, чтобы права доступа были записаны в восьмеричном значении.
Как можно добиться этого?

Может быть есть литература? В учебниках нашёл только таблицу восьмеричных значений.
  • Вопрос задан
  • 446 просмотров
Решения вопроса 1
vman
@vman
Тут все просто, нужно разбить строку из 9 символов на 3 октета

1 = rwx
2 = r-x
3 = r--

Дальше заменить и просуммировать в каждом октете символы

r = 4
w = 2
x = 1
- = 0


на выходе будет 754
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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