Лабораторную работу. Скрипты на SH
ЗАДАЧА:Создать и поддерживать в актуальном состоянии журнал с текущей информацией о владельцах
исполняемых файлов в заданном каталоге.
Первый сценарий (стартовый) готовит рабочее пространство: должны быть добавлены пользователи, создан каталог с исполняемыми
ELF-файлами и прочими файлами, принадлежащими различным пользователям.
Тут все понятно. Т.к. четких определений нет, то я сделаю каталог test и два пользователя (вернее первой будет admin UID 500 в группе wheel, а второго сделаю UID 501 просто user. В каталог копируются три исполняемых файла и еще пару просто текстовых для количества.
Допустим я сделаю владельцем первого пользователя одним файлом исполняемым, а на второго оставшиеся два.
Второй сценарий (рабочий) подсчитывает количество исполняемых файлов формата ELF в заданном каталоге для каждого пользователя. Создает запись в
файле журнала с информацией о дате и времени запуска, названии самого сценария,
именах и идентификаторах пользователей и количестве исполняемых файлов для
каждого из них.
Также, должен выполняться регулярный запуск второго сценария для отслеживания
изменений в рабочем каталоге. Период выполнения выбирается и объясняется
самостоятельно.
Т.к. UID-ы будут известны, то подсчитать кол-во исполняемых файлов я думаю можно командами find
-uid 500 -exec file {} \; | grep -i elf | wc -l и find -uid 501 -exec file {}
\; | grep -i elf | wc -l
Соответственно можно запускать команды скрипте по очереди, сформировать журнал в текстовом виде примерно так
admin – кол-во исполняемых файлов -1
user – кол-во исполняемых файлов – 2
Помогите оформить скрипт на sh
Вот дальше по второму сценарию надо «Создать запись в файле журнала с информацией о дате и времени запуска, название самого
сценария, именах и идентификаторах пользователей, и количестве исполняемых
файлов для каждого из них» Тут я думаю надо использовать инструмент auditctl.
Думаю, он подойдет для этой задачи. Я думаю, можно и файл журнала как-то
создать с требуемой информацией из лога audit с помощью ausearch. Просто вывести
в файл с помощью ausearch будет не то, так как будет много излишней информации
и название самого сценария не будет. Я правильно думаю или каким-то другим
инструментом правильнее будет воспользоваться?
Добавлять правило в auditctl в /etc/audit/rules.d примерно такое -w /home/admin/test/ -p wa -k access_test
Правда пока удалось только с команды его запустить. auditctl -w /home/admin/test/ -p wa -k access_test, предварительно запустив службу. Позапускал фалы и даже вижу что в log audit что нахожу есть необходимы данные поискав access_test
Помогите грамотно в скрипт оформить.
Третий сценарий (очищающий) удаляет пользователей системы, каталог, журнал и другие созданные в ходе работы файлы.
Ну тут думаю проблем не будет.