Лабораторная работа #3

Написать программу, выдающую:
  1. Список пользователей, имеющих право записи в заданный файл.

  2. Список пользователей, имеющих право чтения заданного файла.

  3. Список пользователей, имеющих право исполнения заданного файла.

  4. Список пользователей, имеющих право записи в заданный каталог.

  5. Список пользователей, имеющих право чтения заданного каталога.

  6. Список пользователей, имеющих право поиска в заданном каталоге.

  7. Список файлов, для которых заданный пользователь имеет право записи.

  8. Список файлов, для которых заданный пользователь имеет право чтения.

  9. Список каталогов, в которыe заданный пользователь имеет право записи.

  10. Список каталогов, в которыx заданный пользователь имеет право поиска.

  11. Список файлов, для которых заданный пользователь имеет право исполнения.

  12. Список каталогов, в которыx заданный пользователь имеет право удаления файлов.

  13. Список файлов, содержимое которых можно только дополнять, но не заменять.

Вся необходимая информация должна передаваться в скрипт через аргументы командной строки.
Все файлы выбирать из текущего каталога исключая его подкаталоги.

Для защиты на 4 и более баллов скрипт должен:

  1. проверять права по UID и GID, а не по именам
  2. не использовать find/gfind/...

Для защиты на 4.5 и более баллов скрипт должен:

  1. учитывать ACL POSIX и NFSv4