Gunakan Udev. Udev adalah daemon pengelola perangkat. Di antara hal-hal lain itu bertanggung jawab untuk memberi nama perangkat Anda. Anda bisa mendefinisikan udev-rules dengan meletakkan file dengan sintaks tertentu di direktori rules. Aturan dapat melakukan banyak hal - khususnya mereka dapat menjalankan skrip, ketika perangkat tertentu terhubung.
Bagaimana mengatasi masalah Anda:
Pertama, Anda perlu mengumpulkan informasi di perangkat Anda. Katakanlah Anda menghubungkannya, dan tahu itu sesuai dengan namanya /dev/sdb1
. Jika demikian jalankan:
udevadm info -a -p $(udevadm info -q path -n /dev/sdb1)
Perintah akan menampilkan informasi tentang perangkat Anda. Itu agak panjang. Anda perlu menemukan sesuatu yang mengidentifikasi perangkat secara unik. Itu bisa berupa serial suka ATTRS{serial}=="UA04FLGC"
atau kombinasi dari atribut lain seperti ATTRS{idVendor}
dan ATTRS{idProduct}
. Sebagian besar nama kurang lebih jelas. Pilih satu atau kombinasi beberapa yang tampaknya masuk akal - jika tidak berhasil, coba yang lain.
Setelah Anda menemukan pengidentifikasi unik buat file di /etc/udev/rules.d
yang dimulai dengan dua digit dan berakhir dengan .rules
. Dua digit menentukan urutan pemrosesan file .rules ini - 70-usb-log-custom.rules
harus menjadi pilihan yang baik untuk Anda. Sintaksis file aturan ini bisa sangat kompleks. Jika Anda tertarik, google udev. Jika tidak hanya buka file yang baru dibuat dan edit untuk terlihat seperti ini:
# /etc/udev/rules.d/70-usb-log-custom.rules
KERNEL=="sd?1", ATTRS{serial}=="UA04FLGC", ACTION=="add", SYMLINK+="cusb1", RUN+="/home/confus/bin/usb-encrypt.sh add %k"
ENV{ID_FS_USAGE}=="crypto", ACTION=="remove", RUN+="/home/confus/bin/usb-encrypt.sh remove %k"
SUBSYSTEM=="usb", SYSFS{idVendor}=="1781", SYSFS{idProduct}=="0c9f", GROUP="users", MODE="0666"
Ini adalah file udev aktual yang saya gunakan. Ada tiga aturan di dalamnya. Setiap baris adalah aturannya sendiri. Baris pertama menjalankan skrip untuk membuat perangkat yang didekripsi setiap kali disk terenkripsi terhubung. Baris kedua mengaktifkan skrip yang sama dengan opsi yang berbeda jika perangkat yang didekripsi dihapus. Baris ketiga menetapkan izin untuk perangkat terkait lainnya.
Kemungkinan besar Anda hanya perlu baris pertama. Hapus sisanya dan masukkan serial yang tepat (atau kompilasi parameter yang Anda pilih untuk mengidentifikasi perangkat Anda).
Penjelasan file saya:
KERNEL=="sd?1"
kata perangkat yang kita cari dalam aturan ini dinamai seperti itu /dev/sda1
, /dev/sdc1
atau semacamnya. Tanda tanya adalah wildcard untuk surat apa pun. ATTRS{serial}=="UA04FLGC"
adalah pengidentifikasi unik di sini. Untuk perangkat lain yang saya bicarakan (baris ketiga) saya tidak menggunakan nomor seri tetapi kombinasi SYSFS{idVendor}=="1781"
dan SYSFS{idProduct}=="0c9f"
untuk mengidentifikasinya.
ACTION=="add"
memberi tahu aturan bahwa itu hanya akan bertindak ketika perangkat ditambahkan; tidak ketika itu dihapus.
SYMLINK+="cusb1"
membuat symlink ke disk sehingga orang akan menemukannya di bawah /dev/cusb1
.
RUN+="/home/confus/bin/usb-encrypt.sh add %k"
menjalankan skrip dan meneruskan 'tambah' dan '% k' (nama perangkat).
Saya tidak akan memberikan detail lebih lanjut, karena ada tutorial yang sangat baik tentang aturan udev. Apa yang Anda baca di sini harus cukup untuk dipandang.