Хм. С одной точки зрения можно вывести всю конфигурацию в один httpd.conf файл, но это было бы... трудно считать.
Большинство дистрибутивов разделится, конфигурация при наличии httpd.conf включают подкаталоги. Можно хотеть посмотреть на определенную для дистрибутива документацию, например:
https://help.ubuntu.com/12.04/serverguide/httpd.html
Для Ubuntu каталог конфигурации Apache является/etc/apache2. Основные подкаталоги для Вашего организационного удобства являются conf.d, доступным модификациям, поддерживающим модификации, доступным сайтам и поддерживающим сайты. Вы сохранили бы свою конфигурацию модуля в доступном модификациям каталоге и свои virtualhost конфигурации в доступном сайтам каталоге. Обратите внимание, что *-enabled каталоги содержат символьные ссылки на соответствие *-available каталоги, таким образом, можно иметь в наличии набор вещей, плавающих в *-available, но только активировать их symlinking от *-enabled каталог. Основной httpd.conf файл сделает включение того, что находится в *-enabled каталоги.
RHEL/CentOS не прокладывает себе путь и оставляет его несколько больше до Вашего усмотрения о том, как настроить/etc/httpd базовый каталог. Можно вывести все в/etc/httpd.conf; можно создать подобную структуру каталогов к Ubuntu (и изменить httpd.conf для включения *-available каталоги, которые Вы сделали), или некоторая комбинация этого.
Так, можно хотеть проверить документацию дистрибутива сначала. Как Вы будете видеть с Ubuntu один, они предоставляют ссылки на другие ресурсы.
who
или w
; who -a
для получения дополнительной информации.
Эти команды просто показывают все сессии входа в систему на оконечном устройстве. Сессия SSH будет на ведомом устройстве псевдотерминала (pts
) как показано в TTY
столбец, но не все pts соединения сессии SSH. Например, программы, которые создают устройство псевдотерминала такой как xterm
или screen
покажет как pts
. Посмотрите Различие между pts и tty для лучшего описания различных значений, найденных в TTY
столбец. Кроме того, этот подход не покажет никому, кто вошел в систему сессии SFTP, так как сессии SFTP не являются сессиями входа в систему оболочки.
Я не знаю ни о каком способе явно показать все сессии SSH. Можно вывести эту информацию путем чтения данных для входа из utmp
/wtmp
через инструмент как last
, w
, или who
как я только что описал, или при помощи сетевых инструментов как @sebelk, описанный в их ответе для нахождения открытых соединений TCP на порте 22 (или везде, где демон (демоны) SSH слушает).
Третий подход, который Вы могли проявить, должен проанализировать вывод журнала от демона SSH. В зависимости от Вашего распределения ОС, распределения SSH, конфигурации, и так далее, Ваш вывод журнала может быть во многих различных местах. На поле RHEL 6 я нашел журналы в /var/log/sshd.log
. На поле RHEL 7, и также на поле Arch Linux, я должен был использовать journalctl -u sshd
просмотреть журналы. Некоторые системы могли бы произвести журналы SSH к системному журналу. Ваши журналы могут быть в этих местах или в другом месте. Вот образец того, что Вы могли бы видеть:
[myhost ~]% cat /var/log/sshd.log | grep hendrenj | grep session
May 1 15:57:11 myhost sshd[34427]: pam_unix(sshd:session): session opened for user hendrenj by (uid=0)
May 1 16:16:13 myhost sshd[34427]: pam_unix(sshd:session): session closed for user hendrenj
May 5 14:27:09 myhost sshd[43553]: pam_unix(sshd:session): session opened for user hendrenj by (uid=0)
May 5 18:23:41 myhost sshd[43553]: pam_unix(sshd:session): session closed for user hendrenj
Журналы показывают, когда сессии открываются и близко, кому принадлежит сессия, где пользователь соединяется от, и т.д. Однако Вы оказываетесь перед необходимостью делать большой парсинг, если Вы хотите получить это от простого, человекочитаемого журнала событий к списку в настоящее время активных сессий, и это все еще, вероятно, не будет точный список, когда Вы будете сделаны, анализируя, так как журналы на самом деле не содержат достаточно информации для определения, какие сессии все еще активны - Вы по существу просто предполагаете. Единственное преимущество, которое Вы получаете при помощи этих журналов, состоит в том, что информация прибывает непосредственно из SSHD вместо через подержанный источник как другие методы.
Я рекомендую просто использовать w
. Большую часть времени это получит Вас информация, которую Вы хотите.
Вы видите каждую сессию ssh со следующей командой:
[root@router ~]# netstat -tnpa | grep 'ESTABLISHED.*sshd'
tcp 0 0 192.168.1.136:22 192.168.1.147:45852 ESTABLISHED 1341/sshd
tcp 0 0 192.168.1.136:22 192.168.1.147:45858 ESTABLISHED 1360/sshd
O, возможно, это может быть полезно:
[root@router ~]# ps auxwww | grep sshd:
root 1341 0.0 0.4 97940 3952 ? Ss 20:31 0:00 sshd: root@pts/0
root 1360 0.0 0.5 97940 4056 ? Ss 20:32 0:00 sshd: root@pts/1
root 1397 0.0 0.1 105300 888 pts/0 S+ 20:37 0:00 grep sshd:
pgrep: invalid option -- 'i'
на Ubuntu 14.04.
– Reinstate Monica - M. Schröder
14.03.2018, 11:03
-i
только доступно на mac/bsd ароматах. на человечности можно использовать pgrep -af ssd
. См. serverfault.com/a/883270/116777 для деталей
– ccpizza
14.03.2018, 12:48
Расширение ответа @sebelk:
Решение с использованием netstat
хорошее, но требует привилегий суперпользователя. Кроме того, пакет net-tools
(, содержащий netstat
), устарел в некоторых новых дистрибутивах Linux(https://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/).
Альтернативным решением является замена netstat
, ss
. Например (обратите внимание, что вам больше не нужен root):
user@router:~# ss | grep ssh
tcp ESTAB 0 0 192.168.1.136:ssh 192.168.1.147:37620
tcp ESTAB 0 0 192.168.1.136:ssh 192.168.1.147:37628
Вы можете использовать
last | head
Я использовал это в своем сценарии.login в течение многих лет, чтобы узнать, кто недавно входил в систему. Это было плохое -человек -защитное устройство, чтобы узнать, не зашел ли кто-нибудь в систему, используя ваш логин.
Я выполнил почти все вышеперечисленные команды и думаю, что лучший способ найти пользователей, вошедших в систему в данный момент, через ssh
last | grep "still logged in"
И
who -a
who -a
команда – Serge Stroobandt 19.12.2016, 00:33