Требуется написать на C или C++ для GNU/Linux, например Ubuntu
Требуется разработать утилиту, которая получая на вход путь до директории, имя пользователя и имя группы, проверяет рекурсивно доступность на запись (w) файлов и каталогов этим пользователем и группой. При возможности записи - полный путь до каждого такого файла или каталога выводится в стандартный вывод (stdout) с новой строчки
/home/myname$ sudo mycheckperm -u username -g groupname -p /home/myname/testdir/ f /home/myname/testdir/file1 f /home/myname/testdir/file7 d /home/myname/testdir/file/dir/testdir
То есть утилита помогает найти все каталоги и файлы, доступные на запись процессам, работающим под пользователем username и группой groupname. Сама утилита должна стартовать от root (sudo).
Например, файл доступен на запись, если у него совпадает владелец с выбранным ( username) и есть права на запись для владельца (stat->st_mode). Или же если совпадает группа (groupname) и есть права записи для группы. Или не совпадает ни владелец, ни группа, но открыты права для всех. То есть семантика проверки прав традиционная для Linux.
Если под указанными пользователем/группой в каталог не зайти (нет прав на чтение от заданного пользователя/группы), то внутренние подкаталоги проверять не нужно. Символьные ссылки можно игнорировать. Каталоги /sys и /proc игнорируем, утилита не должна работать с ними Рекомендуем для отладки использовать тестовую директорию в домашнем каталоге
- Нужно перенести файл со скриптом в папку usr/local/bin поставить ему права на исполнение только для root
- Нужно сделать сборку проекта, найти соответствующий названию проекта файл Aurora_test и перенести его в папку usr/local/bin
- Запустить скрипт через sudo mycheckperm и далее все флаги по условию задания