Рейтинг:1

Нужна помощь в отображении прав доступа к файлам/папкам в виде открытого текста

флаг cn

Мне нужна помощь в отображении разрешений четким и понятным текстом.

т.е. rwx-wx--- как:

Разрешение пользователя: чтение, запись, выполнение
Разрешение группы: запись, выполнение 
Другое разрешение: Нет разрешения

Мне нужен этот сценарий, чтобы упростить его понимание для нетехнических пользователей.

Рейтинг:4
флаг vn

Этот скрипт сделает свое дело (я назвал скрипт файлстат - поместите его на свой путь):

#!/бин/баш

# Перебираем каждый аргумент
для файла в "$@"; делать
  perm_type=('Пользователь' 'Группа' 'Другое')
  (( j = 0 ))

  # Проверяем, существует ли файл
  если [[ -e "$file" ]]; тогда

    # Распечатать имя файла
    echo -e "\nИмя файла: $file"

    # Изолировать октет разрешения
    perm_octet=$( stat -c "%a %n" "$file" | cut -d ' ' -f 1 )

    # Добавляем каждое значение октета в массив
    перм_массив = ()
    for (( i = 0; i < "${#perm_octet}"; i++ )); делать
      perm_array+=("${perm_octet:$i:1}")
    сделано

    # Итерация по массиву
    для x в "${perm_array[@]}"; делать

      # Тип разрешения на печать и счетчик увеличения
      echo -n "${perm_type[$j]} разрешение: "
      (( j++ ))

      # Проверяем, равны ли права доступа нулю (нет), распечатываем и запускаем следующую итерацию
      если (( "$x" == 0 )); тогда
        эхо "НЕТ"
        Продолжить
      фи

      # Проверяем, есть ли разрешение "чтение", печатаем и вычитаем 4
      если (( "$x" > 3 )); тогда
        эхо-н "читать"
        (( х = х - 4 ))
      фи

      # Проверяем, есть ли разрешение "запись", печатаем и вычитаем 2
      если (( "$x" > 1 )); тогда
        эхо-н "написать"
        (( х = х - 2 ))
      фи

      # Проверяем, есть ли разрешение "выполнить", печатаем и вычитаем 1
      если (( "$x" > 0 )); тогда
        эхо -n "выполнить"
        (( х = х - 1 ))
      фи

      эхо ""
    сделано

  фи

сделано


РЕДАКТИРОВАТЬ: принимает любое количество файлов в качестве входных данных и проверяет, существует ли файл. Пример вывода:

$ файлстат ~/.bashrc ~/.config

Имя файла: /home/am/.bashrc
Разрешение пользователя: чтение запись
Разрешение группы: чтение запись
Другое разрешение: читать

Имя файла: /home/am/.config
Разрешение пользователя: чтение, запись, выполнение
Разрешение группы: НЕТ
Другое разрешение: НЕТ

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.