Как я могу узнать, кто выполнил определенную команду и какой терминал использовался для ее запуска?
Оригинал :
Как я могу узнать, какой конкретный cmd выполняется кем и узнать о моем терминале
Как я могу узнать, кто выполнил определенную команду и какой терминал использовался для ее запуска?
Оригинал :
Как я могу узнать, какой конкретный cmd выполняется кем и узнать о моем терминале
Ответы:
Чтобы увидеть, какие команды выполняются, вы используете "ps -ef". Это скажет вам, что все делают, хотя обычно это слишком много информации.
Чтобы сузить его, чтобы выяснить, кто запускает определенную команду, вы можете добавить фильтр "grep", например, так:
ps -ef | grep scp
Это вернет все команды scp, но может также вернуть команду grep, которая ищет scp и любые другие команды с вложенными в них буквами scp, поскольку grep просто соответствует строке. Таким образом, вам может понадобиться разобраться с выражением, данным для grep (часто вам просто нужно заключить его в кавычки и добавить пробел:
ps -ef | grep "scp "
или даже лучше использовать регулярные выражения и:
ps -ef | grep "[s]cp "
Если вы знаете пользователя и просто хотите знать, что он запускает, тогда "ps -fu" - ваш друг. Например
ps -fu tom
Который, конечно, может быть объединен с grep для получения процессов scp Тома:
ps -fu tom | grep "[s]cp "
Колонка 6 - это номер.
Вы можете использовать, tty
чтобы узнать имя файла терминала, подключенного к стандартному вводу.
Для последней части вашего вопроса, sudo
или su
и тогда grep -c 'command' /home/username/.bash_history
.