@calculator212

Можно ли как-то перехватить команды, которые исполняются через терминал в ubuntu?

Есть файл ~/.bash_history, в котором хранится история введеных команд в терминал, есть ли способ сделать такую утилиту, которая будет получать текст введенных команд в терминал для например создания своего файла с логами.
  • Вопрос задан
  • 124 просмотра
Решения вопроса 2
EvgenyMamonov
@EvgenyMamonov
Senior software developer, system architect
Там храниться только история команд, которые были введены в bash.
Если у вас будет другая shell - список команд в .bash_history вы не увидите.

Например у меня может запускаться bash сразу после входа в систему, но я потом запущу, например, zsh.
bash.history будет пустым.
Это я к тому, что даже если вы сделаете свою shell, то её можно будет легко обойти.

Знаю как минимум одно реальное решение, которое будет работать.
Делаете модуль к ядру Linux, там перехватываете системный вызов exec и всё, что с этим связано и тогда обойти вас будет уже очень не просто.

Я делал нечто подобное для Unix FreeBSD лет 20 назад :))
Ответ написан
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
В X11 довольно легко перехватывать события нажатия клавиш. Вот готовая утилита на XCB - модной альтернативе xlib. https://github.com/baskerville/sxhkd Правда не очень Go))
P.S. Нашел - Andrew Gallant переписал XCB(низкоуровневый доступ к X11) на Go https://github.com/BurntSushi/xgb https://github.com/BurntSushi/xgbutil Можно в X11 перехватывать нажатия клавиш на Go)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы