keepass2パスワードデータベースを含むUSBキーがあり、それをコンピュータに接続するときに、次のようないくつかのタスクを実行したいと思います。
- 特定の場所に自動的にインストール
- 正しくインストールされたら、パスワードデータベースファイルでkeepass2を起動します。
作業が簡単なようですが、どうすればいいかわかりません。
私はUbuntu 12.10を使用しており、自動的にデバイスを「メディアUSBキー」としてマウントし、画像を開こうとします(そうでない場合でも)。
Ubuntuの自動インストールを無効にする最善の方法は何ですか(衝突がないように)?
答え1
新しい端末が表示されたらウデブ通知を受け取ります。通常、/dev
組み込みルールに基づいてデバイスファイルを生成します。これらのルールを上書きしてデバイスファイルの場所を変更したり、任意のプログラムを実行したりできます。以下は、これらの udev ルールの例です。
KERNEL=="sd*", ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="123456789", NAME="keepass/s%n", RUN+="/usr/local/sbin/keepass-drive-inserted /dev/%k%n"
このNAME=
ディレクティブはデバイスファイルの場所を変更します。説明のために含めましたが、ユースケースには役に立ちません。ルールは、ATTRS
デバイスを識別し、udevinfo -a -n /dev/sdz
ドライブが/dev/sdz
どの属性を持っているかを判断するために使用できる場合に実行されます。入力ATTRS
の単一部分でのみルールを使用できますudevinfo
。また、ATTR
最初の部分のルールも使用できます。バラより`udevadm info -a -n /dev/sdb`の出力を理解する背景の詳細をご覧ください。この規則は/etc/udev/rules.d/local-storage-keypass.rules
。
ディレクティブで提供されているスクリプトに実行したいコマンドを入力してくださいRUN
。それは次のとおりです。
#!/bin/sh
set -e
if [ -d /media/keypass-drive ]; then
[ "$(df -P /media/keypass-drive | awk 'NR==2 {print $1}')" = "$(df -P /media | awk 'NR==2 {print $1}')" ]
else
mkdir /media/keypass-drive
fi
mount "$1" /media/keypass-drive
su ereon -c 'keypass2' &
udevトリガースクリプトを介してGUIプログラムを実行できない場合は、以下を参照してください。他のユーザーのデスクトップからrootとしてグラフィカルプログラムを起動できますか?
¹最新のシステムではなく/dev
udevtmpfs にあります。
答え2
最善のアプローチは、このデバイスに固有のudevルールを作成することです。残念ながら、私は一度も試したことがないので、これを行う方法についてのヒントを提供することはできません。したがって、他の人がより詳細な答えを持っていない限り、「udevルール」を検索し、/lib/udevで例を見つけてください。カスタムudevルールは/etc/udev/rules.dになければなりません。