Я искал базу данных AskUbuntu, но самой близкой вещью, которую я нашел, был вопрос о том, как зарегистрировать ошибки.
То, что я ищу, должно добавить к файлу журнала / журнал аудита, каждый раз sudo gedit / gksu gedit / pkexec gedit используется. В действительности я буду использовать названный сценарий обертки gsu
это звонит pkexec gedit
.
То, что я хотел бы сделать, добавляют к файлу аудита, говорят ~/gedit-log
следующее:
YYYY-MM-DD hh:mm:ss Count /SystemDirectoryName/SystemFileName
Следует иметь в виду, что я могу перейти к/SystemDirectoryName и затем звонить gsu gedit SystemFileName
так первый параметр не может автоматически использоваться, потому что путь должен предварительно ожидаться. Поэтому команда удара "вот является именем файла, дайте мне, полный путь и имя файла" требуются.
Текущая дата и время должна быть в человекочитаемом формате (не число секунд с 1970 (время эпохи)). Маска Даты и времени в примере является, вероятно, несоответствующей и должна соответствовать промышленным стандартам вместо этого.
Команда необходима для добавления строки комбинации + CR/LF (Перевод строки Возврата каретки) к журналу аудита / файл журнала.
В будущем программа массирования / сценарий был бы необходим для соответствия всем временам, данный файл был отредактирован (/etc/default/grub, мог получить много редактирований) в поле "количества", и удалите посторонние записи. Это, вероятно, было бы a cron
ежедневное задание?
Могло бы иметь смысл иметь два поля даты/времени. Один в первый измененный раз и один в прошлый измененный раз.
Надо надеяться, этот код уже существует в Linuxverse, или что-то близко к нему может быть легко адаптировано.
Сам код мог бы быть помещен в отдельный сценарий удара, таким образом, он может повторно ставиться целью для многих ситуаций..., т.е. этот пользователь отредактировал тот файл платежной ведомости и т.д.
Самый простой ответ для меня для переноса моей головы не использует journalctl
производные, а скорее программирование "грубой силы" / сценарии.
Вот код.
~/bin/gsu
:
#!/bin/bash
# Usage: gsu gedit file1 file2...
# -OR- gsu natuilus /dirname
# & is used to spawn process and get prompt back ASAP
# > /dev/null is used to send gtk warnings into dumpster
COMMAND="$1" # extract gedit or nautilus
pkexec "$COMMAND" "${@:2}"
log-file "${@:2}" gsu-log-file-for-"$COMMAND"
/usr/local/bin/log-file
:
#! /bin/bash
# NAME: log-file
# PATH: /usr/local/bin
# DESC: Update audit trail/log file with passed parameters.
# CALL: log-file FileName LogFileName
# DATE: Created Nov 18, 2016.
# NOTE: Primarily called from ~/bin/gsu
ABSOLUTE_NAME=$(realpath "$1")
TIME_STAMP=$(date +"%D - %T")
LOG_FILE="$2"
# Does log file need to be created?
if [ ! -f "$LOG_FILE" ]; then
touch "$LOG_FILE"
echo "__Date__ - __Time__ - ______File Name______" >> "$LOG_FILE"
# MM/DD/YY - hh:mm:ss - "a/b/c/FileName"
fi
echo "$TIME_STAMP" - '"'"$ABSOLUTE_NAME"'"' >> "$LOG_FILE"
exit 0
Содержание файла журнала gsu-log-file-for-gedit
после нескольких редактирований:
__Date__ - __Time__ - ______File Name______
11/18/16 - 19:07:54 - "/etc/default/grub"
11/18/16 - 19:08:34 - "/home/rick/bin/gsu"
11/18/16 - 19:09:26 - "/home/rick/bin/gsu"
сценарий консолидации А, который возьмет, проводит последние две строки и объединяет их в:
11/18/16 - 19:09:26 - "/home/rick/bin/gsu" (2 edits, first on 11/18/16 - 19:08:34"