GNU/Linux >> Belajar Linux >  >> Ubuntu

Ubuntu – Memicu Tindakan Saat Volume Tertentu Terhubung?

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.


Ubuntu
  1. Kapan File yang Dapat Dieksekusi Tidak?

  2. Menambahkan Volume Tukar?

  3. Bagaimana Cara Memperbarui Ubuntu Saat Tidak Terhubung Ke Internet?

  1. Cara Menambahkan File Swap Di Ubuntu

  2. Tidak Ada Suara Startup Di Ubuntu 11.10?

  3. Cara menginstal g ++ di Ubuntu

  1. Cara Mengubah Nama Host di Ubuntu 18.04

  2. Cara menghapus file di Ubuntu Linux

  3. Bagaimana menghubungkan perangkat Android Anda di Ubuntu Linux