シリアルコンソールを使用してログインしたユーザーがLinuxマシンを制御しているかどうかをプログラムで検出するにはどうすればよいですか?私はBASHを介してチェックを行います。
5 に答える
このwho
コマンドは、ログオンしているユーザーとユーザーがログオンしている場所のリストを表示します。
例えば:
~$ who
john pts/1 2009-07-29 10:06 (ourcompanyvpnserver.org)
mary tty7 2009-07-29 10:11 (:0)
frank pts/2 2009-07-27 12:10 (att.net)
jim pts/4 2009-07-28 14:51 (comcast.net)
ユーザーが「どのように」ログインしているかを示すwhoの出力。ユーザーmaryのコンソールが接続されてtty7
いるttyは、maryがシリアルコンソールを介して物理的にログインしていることを示します。したがって、メアリーには、シリアルコンソールを介してコンピュータを制御する機能があります。
彼女が何をしているかを判断するには、her.bash_historyファイルを確認する必要があります。通常、これは/home/mary/.bash_historyの下にあります。
シリアルコンソール(そのマシンに接続されているキーボード)を介して入ってくるすべてのコマンドを長期間ログに記録したい場合は、すべての入力と出力をログに記録するようにLinuxシリアルドライバーを変更します。それがどれほど難しいかはわかりません。
スクリプトがシリアルインターフェイスを介して端末で実行されているかどうかを確認する場合は、ttyを実行してデバイス名を確認するだけです。
finger を解析してみてください。通常、IP/DNS アドレスを取得できます。シリアル接続を見たことがないので、シリアル接続が表示されるかどうかはわかりません。
コマンド ラインからwhoを使用できます。
ローカル コンピューターで確認する場合は...
$ who >> log.txt
そして、そのファイルに余分な行があるかどうか、または必要なものを確認します。