CentOS 8でシステムuuidおよび/または製品uuidを使用する

CentOS 8でシステムuuidおよび/または製品uuidを使用する

使用

dmidecode -s system-uuid

私は戻った:

/sys/firmware/dmi/tables/smbios_entry_point: Permission denied
/dev/mem: Permission denied

管理者パスワードを使用してもsudo問題ありません。

Webサーバーデータベースでローカルコンピュータを識別するためにPythonスクリプトでUUIDを使用したいのですが、このローカルスクリプトは管理者権限で実行してはいけません。資格情報をハードコードしたくありません。どうですか?

同様の純粋なPythonメソッドがありますか machineId = os.popen("cat /etc/machine-id").read()

拡張された質問

  1. 出力には、400権限を持つファイルとdmidecode -s system-uuid同じ値があります。/sys/devices/virtual/dmi/id/product_uuidテスト目的で444に変更しましたが、管理者権限なしで読むことができます。危険がありますか?そうでない場合、問題は解決されます。

  2. Product-uuidとsystem-uuidは名前だけが異なり、同じですか?どのように計算されますか?コンピュータの電源を入れるたびに再起動する必要がありますか?/sys/devices/virtual/dmi/id/product_uuidディスク全体がdd複製され、新しい/別のマザーボードで実行されている場合、保存されたこの値は変更されて上書きされますか?

machine-idを使用しない理由は、私が知っている限り、システム全体がddを介して複製され、他のマザーボードで使用されているときにmachine-idが変更/上書きされないためです。私は、サービスを簡素化するために、同じディスクイメージを持つ同じコンピュータセットで複数のPOSシステムを開発しています。ただし、それぞれは顧客のダッシュボードに登録され、他のタスクに割り当てる必要があります。

ベストアンサー1

純粋なPythonメソッドはファイルを読むことですが、ご存知のように適切な権限が必要です。 UUIDを特権情報と見なさない限り、ファイル権限の変更は特に危険ではありませんが、システムが起動するたびに権限を変更する必要があります。

dmidecode -s system-uuid同じ情報を示し、/sys/devices/virtual/dmi/id/product_uuidシステムファームウェアに保存され、理論的には一意です(ただし、一意性は保証されておらず、一部の製造業者はこのフィールドを適切に設定しません)。

代わりにそれを使用することをお勧めします/etc/machine-id。システム複製プロセスからそれを削除したことを確認してください。バラより/etc/machine-idを変更できますか?もっと学ぶ。

おすすめ記事