特定のボリュームが接続された場合のアクショントリガー

特定のボリュームが接続された場合のアクショントリガー

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としてグラフィカルプログラムを起動できますか?

¹最新のシステムではなく/devudevtmpfs にあります。

おすすめ記事