Более элегантным способом решения этой проблемы является чтение из файлов журнала, которые уже записываются и не могут быть изменены пользователем.Никто не может сказать это лучше, чем Бьёрне Малмангер в своем ответе :
Я бы не стал доверять пользователю, чтобы дать вам информацию.Под root вы берете его; -)
Хороший способ сделать это - команда last
, которая хороша тем, что она аккуратно отображает все логины: графический, консольный и SSH.
last
Менее элегантный, но все же безопасный способ - выполнить grep для /var/log/auth.log.В моей системе Gnome / Ubuntu я могу использовать это для отслеживания графических входов в систему:
grep "session opened for user USERNAME"
Нужный шаблон для вашей машины должен быть найден для каждого типа входа: графический, консольный и SSH.Это громоздко, но вам может потребоваться сделать это, если вам нужна информация, которая уходит дальше, чем last
.
Чтобы напрямую ответить на ваш вопрос:
Вы можете изменить скрипт следующим образомполучить имя пользователя
#!bin/bash
printf "$(date) $HOSTNAME booted!\n" >> /home/$(whoami)/boot.log
и добавить эту строку в / etc / profile
. /path/to/script.sh
Хотя это небезопасно, поскольку пользователь сможет редактировать свой собственный журнал