Saya memiliki kunci USB yang berisi basis data kata sandi keepass2 saya dan saya ingin melakukan beberapa tindakan saat dicolokkan ke komputer saya, yaitu:
- Pasang otomatis ke lokasi tertentu
- Bila pemasangan dilakukan dengan benar, luncurkan keepass2 pada file basis data kata sandi
Saya kira tugas sederhana, tetapi saya tidak dapat menemukan cara melakukannya.
Saya menggunakan Ubuntu 12.10, dan secara otomatis memasang perangkat sebagai “media usb-key” dan mencoba membuka gambar di dalamnya (meskipun tidak ada).
Apa cara terbaik untuk melakukannya dan menonaktifkan pemasangan otomatis ubuntu (agar tidak bentrok)?
Jawaban yang Diterima:
Saat perangkat baru muncul, udev akan diberi tahu. Biasanya membuat file perangkat di bawah /dev
berdasarkan aturan bawaan¹. Anda dapat mengesampingkan aturan ini untuk mengubah lokasi file perangkat atau menjalankan program arbitrer. Berikut adalah contoh aturan udev tersebut:
KERNEL=="sd*", ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="123456789", NAME="keepass/s%n", RUN+="/usr/local/sbin/keepass-drive-inserted /dev/%k%n"
NAME=
direktif mengubah lokasi file perangkat, saya menyertakannya untuk tujuan ilustrasi tetapi mungkin tidak berguna untuk kasus penggunaan Anda. ATTRS
aturan mengidentifikasi perangkat; jalankan udevinfo -a -n /dev/sdz
ketika drive tersedia sebagai /dev/sdz
untuk melihat atribut apa yang dimilikinya. Hati-hati bahwa Anda hanya dapat menggunakan ATTRS
aturan dari satu bagian udevinfo
masukan (selain itu, Anda dapat menggunakan ATTR
aturan dari bagian awal). Lihat Memahami keluaran `udevadm info -a -n /dev/sdb` untuk latar belakang selengkapnya. Aturan ini masuk ke file bernama sesuatu seperti /etc/udev/rules.d/local-storage-keypass.rules
.
Letakkan perintah yang ingin Anda jalankan di skrip yang diberikan di RUN
pengarahan. Sesuatu seperti:
#!/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' &
Jika Anda mengalami masalah saat menjalankan program GUI dari skrip yang dipicu dari udev, lihat Dapatkah saya meluncurkan program grafis di desktop pengguna lain sebagai root?
Tidak pada sistem modern di mana /dev
ada di udevtmpfs.