Этот скрипт сделает свое дело (я назвал скрипт файлстат
- поместите его на свой путь):
#!/бин/баш
# Перебираем каждый аргумент
для файла в "$@"; делать
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
Разрешение пользователя: чтение, запись, выполнение
Разрешение группы: НЕТ
Другое разрешение: НЕТ