Jak mogę sprawdzić, czy użytkownicy są zalogowani przez sftp?

11

Prowadzę serwer plików Linux dla mojego biura i używamy SFTP dla zdalnych partnerów do logowania i pobierania plików. Czy istnieje sposób, aby sprawdzić, czy są jakieś aktywne połączenia lub dane logowania, dzięki czemu mogę wiedzieć, kiedy można bezpiecznie wykonywać czynności konserwacyjne na maszynie?

Ponieważ maszyna prawie stale obsługuje duże pliki, zaplanowana konserwacja często jest przerywana z powodu przesłania przez kogoś

aVeRTRAC
źródło

Odpowiedzi:

11

Możesz także:

ps -ef | grep '[s]shd' | grep -v ^root

które powinny pokazywać wszystkie sesje sshd (używane do sftp). Zauważyłem na moim komputerze, że wiersz polecenia procesu sshd zawiera „$ USER @ notty”, co ma sens, ponieważ nie jestem zalogowany w sesji terminalowej. Możesz zaostrzyć grep powyżej za pomocą:

ps -ef | grep '[s]shd:.*@notty' | grep -v ^root

BTW: nawiasy kwadratowe w grep nie powinny wyświetlać procesu „grep sshd” na liście procesów. [s] shd pasuje do sshd, ale nie pasuje do siebie. Zapisuje „grep -v grep”

Rich Homolka
źródło
4
Skończyło się netstat -atn | grep ':22'na sprawdzeniu, czy na porcie 22. jest otwarty ruch. Odkryłem również, że mogę sprawdzić dzienniki sshd, znajdujące się w „/var/log/auth.log” w moim systemie, aby sprawdzić, czy wszyscy użytkownicy, którzy otworzyli sesja została zamknięta.
aVeRTRAC
2

Możesz także spróbować fuser -u ssh/tcp

Uli
źródło
1

Myślę, że możesz użyć programu wiersza poleceń, whoaby to zobaczyć. Zauważyłem niektóre raporty, że to nie działa, ale nadal myślę, że może działać (może to ustawienie ssh).

sftp jest oparty na SSH . To skrót od „SSH File Transfer Protocol”. A kiedy jesteś zalogowany przez ssh, „kto” uwzględni cię jako zalogowanego użytkownika z jego danymi wyjściowymi. Spodziewałbym się więc, że zadziała to również przy aktywnych sesjach sftp.

Ta dyskusja z 2008 roku sugeruje również, że możesz do tego użyć „netstat”. Zawiera także sugestię uruchomienia „kto” za pomocą „zegarka”, abyś mógł zobaczyć aktualizacje bez robienia czegokolwiek.

James T. Snell
źródło
1
kto nie pokazuje użytkowników zalogowanych przez ssh (właśnie zalogowałem się z laptopa i sprawdziłem).
aVeRTRAC
To głupie, to GOT być scenerią .. Jestem cholernie pewien, że to dla mnie to zrobiło ... przez lata, lata i lata ...
James T Snell
Masz pomysł, gdzie byłoby to ustawienie? Próbowałem tego na publicznym serwerze w mojej pracy i wróciłem, co wygląda jak realistyczne wyniki z kilkoma wymienionymi użytkownikami.
aVeRTRAC
1
kto pokazuje, kto aktualnie korzysta z powłoki logowania. W zależności od tego, co użytkownik uruchamia, może, ale nie musi, liczyć się jako powłoka logowania. Połowa serwera sftp nie, dlatego dlaczego sesje sftp nie pokazują się w kim.
Perkins