どのユーザーがどのUSBに接続したかを記録し、その情報をサーバーに送信するスクリプトを作成する必要があります。 USBプラグが検出されたら、Pythonスクリプトを実行するudevルールを作成しました。スクリプトは、接続されているUSBに関する情報をログファイルに記録し、その情報をサーバーに送信します。問題は、idコマンドがuid = 0(root)を返すため、スクリプトが現在のユーザーではなくrootとして実行されているように見えることです。 udev-runスクリプトから現在ログインしているユーザーをインポートすることは可能ですか?それ以外の場合、これを行う他の方法はありますか?
答え1
機能的には、次の理由で通常の方法でこれを行うことはできません。
- 同時に複数のユーザーがログインしている可能性があります。その後、誰もが記録できますが、2番目の問題のため依然として信頼できません。
- ユーザー名は、システムに実際に存在するユーザー名に確実に変換できません。
あなたならどうでしょうか?本物これを開始すると、who
USB情報とともにコマンド出力が記録されます。これにより、どの端末で、どこで、いつ有効にログインしたすべての人のリストが提供されます。これにより最初の問題は解決されますが、2番目の問題は解決されません。できないハードウェアを使用せずに2番目の問題を解決します。
または、見てくださいUSBガード、すべてのジョブが認証を必要とするように設定し、誰がデバイスを認証したかを記録します(これはしなければならない接続されていますが、これは保証できません。)