: list-keys
- список распознанных на данный момент ключей и команд, с которыми они связаны.
: list-commands
- список доступных команд
Это может помочь вам.
Одним из подходов может быть применение команды fuser
к псевдотерминальным устройствам -в /dev/pts
, например. sudo fuser -v /dev/pts/*
.
Например,Я вошел в систему Linux как user1
и запустил sudo su user2
, затем снова вошел в систему (какuser1
)через другой терминал. После запуска sudo fuser -v /dev/pts/*
я получил следующий вывод:
USER PID ACCESS COMMAND
/dev/pts/0: user1 5533 F.... bash
root 6291 F.... sudo
/dev/pts/1: user1 5655 F.... bash
root 5748 F.... sudo
root 5752 F.... su
user2 5753 F.... bash
Глядя на второй блок вывода здесь (, соответствующий /dev/pts/1
), вы можете видеть, что user1
переключился на user2
. Для получения дополнительной информации об этом подходе вы можете обратиться к следующему сообщению:Как мы можем узнать, кто находится на другом конце псевдотерминала -?
Логины будут отображаться в файле /var/log/secure (red hat\centos )или /var/log/auth.log (debian\ubuntu ),а формат логина содержит строчный текст «сессия открыта для», поэтому cat /var/log/(secure OR auth.log) | grep "session opened for"
должен предоставить список логинов, подобный этому:
9 января 07 :07 :07 имя хоста su :pam _unix (su :сеанс ):сеанс открыт для пользователя user1 пользователем2 (uid=2000)
ps aux | grep username
должен перечислять оболочки, работающие под «именем пользователя», что является быстрым способом проверки активности «имени пользователя» и очень бросается в глаза -, если вы не ожидаете найти какую-либо активность «имени пользователя». Это не сообщит вам, КТО вошел в систему как «имя пользователя», поэтому для этого все равно необходимо обратиться к файлам журнала.
Для большого количества пользователей эти проверки могут стать громоздкими. Я надеялся, что будет что-то вроде ps -eo ruid,euid
только для пользователей, а не для всех процессов, но я не нашел ничего столь же простого.