ユーザーがsftp経由でログインしているかどうかを確認するにはどうすればよいですか?


11

私はオフィスでLinuxファイルサーバーを実行しており、リモートパートナーがログインしてファイルをダウンロードするためにSFTPを使用しています。マシンのメンテナンスを安全に実行できる時期を知ることができるように、アクティブな接続またはログインがあるかどうかを確認する方法はありますか?

マシンはほぼ常に大きなファイルを処理しているため、誰かがアップロードしたために、スケジュールされたメンテナンスがしばしば中断されます

回答:


11

あなたも行うことができます:

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

sshdセッションが表示されます(sftpに使用されます)。私のマシンでは、sshdプロセスのコマンドラインに '$ USER @ notty'が含まれていることに気づきました。これは、ターミナルセッションでログインしていないためです。上記のgrepを次のように強化できます。

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

ところで: grepの角括弧は、「grep sshd」プロセスがプロセスリストに表示されないようにするためのものです。[s] shdはsshdと一致しますが、それ自体とは一致しません。「grep -v grep」を保存します


4
私は最終的netstat -atn | grep ':22'にポート22にオープントラフィックがあるかどうかを確認するために使用しました。また、システムの「/var/log/auth.log」にあるsshdログをチェックして、セッションは終了していました。
aVeRTRAC 2011


1

コマンドラインプログラムwhoを使用してこれを確認できると思います。動作しないという報告がいくつかありますが、動作する可能性はあります(おそらくsshの設定です)。

sftpはSSHの上に構築されています。「SSHファイル転送プロトコル」の略です。また、sshを介してログインしている場合、「who」には、ログインしたユーザーとしての出力が含まれます。そのため、これがアクティブなsftpセッションでも機能することを期待しています。

2008年からのこのディスカッションは、これに「netstat」を使用することを提案しています。また、何をしなくても更新を確認できるように、「watch」を介して「who」を実行するための提案も含まれています。


1
ssh経由でログインしたユーザーを表示しない人(ラップトップからログインしてチェックしたところです)。
aVeRTRAC、2011

私はかなりのろわれていたようGOTを設定することですの奇抜なが..確かそれは...何年も何年も何年も...私のためにそうしたことを
ジェームズ・Tスネル

その設定はどこにあるのでしょうか?私は職場の公開サーバーでこれを試してみましたが、何人かのユーザーがリストされており、現実的な結果に見えます。
aVeRTRAC、2011

1
whoは、現在ログインシェルを実行しているユーザーを示します。ユーザーが実行しているものに応じて、ログインシェルとしてカウントされる場合とカウントされない場合があります。sftpの半分のサーバーはそうではない、それゆえになぜsftpセッションが誰に現れないのか。
Perkins
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.