Мое решение - это фактическое обходное решение путем установки PROMPT_COMMAND
переменной окружения в ~/.bash_profile
или в ~/.bashrc
, которая создает дополнительный журнал.
Файл ~/.bash_history
хранит только временную метку и команду, подобную этой:
#1488631365
ls -lah
#1488631367
history
#1488631380
cat ~/.bash_history
переменная окружения HISTTIMEFORMAT
- это только установка того, как #1488631380
должно быть переведено/отображено.
Ниже будет создан сегодняшний лог-файл - ~/bash-history-2017-03-04.log
export PROMPT_COMMAND='echo -e "$(tty)\t$(history 1)" >> ~/bash-history-$(date "+%Y-%m-%d").log'
пример вывода (в зависимости от того, как настроен HISTTIMEFORMAT
)
/dev/pts/1 541 [04/03 14:02:37] tty
/dev/pts/1 542 [04/03 14:02:45] echo "hi from tty1"
/dev/pts/0 523 [04/03 13:55:07] cat ~/.bash_history
/dev/pts/0 524 [04/03 14:02:53] tty
/dev/pts/0 525 [04/03 14:02:58] echo "hi from tty 0"
Вы можете попробовать сменить владельца исполняемых файлов Firefox/Thunderbird на «userxfirefox», а затем установить для них бит uid (chmod u+s ). Это заставит их работать с привилегиями «userxfirefox» и под его эффективным идентификатором пользователя. Однако процесс может различать реальный и эффективный идентификатор пользователя, и в зависимости от того, как процесс ищет домашний каталог пользователя (, оценивая текущий $USER, $HOME или иным образом ), это может работать или не работать так, как предполагалось в отношении доступ к профилю и конфигурации пользователя Firefox/Thunderbird.
Кроме того, не забывайте, что sudo/gksudo может запускать программы как другие пользователи (, а не только как root ), и он установит как реальный, так и эффективный UID процесса для указанного пользователя.