Ya, Anda dapat menulis aturan udev.
Di /etc/udev/rules.d
buat file 30-mydevice.rules
(nomor harus dari 0 hingga 99 dan hanya memutuskan tentang urutan menjalankan skrip; nama tidak terlalu penting, itu hanya deskriptif; .rules
ekstensi diperlukan, meskipun)
Dalam contoh ini saya menganggap perangkat Anda berbasis USB dan Anda tahu vendor dan id produknya (dapat diperiksa menggunakan lsusb -v
), dan Anda menggunakan mydevice
grup pengguna Anda harus masuk untuk menggunakan perangkat. Ini harus menjadi konten file dalam hal ini:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0123", SYSFS{idProduct}=="4567", ACTION=="add", GROUP="mydevice", MODE="0664"
MODE
sama dengan 0664 memungkinkan perangkat ditulis oleh pemiliknya (mungkin root) dan grup yang ditentukan.
Salah satu caranya adalah menambahkan pengguna ke "grup perangkat" yang sesuai. Ada berbagai macam grup untuk berbagai jenis perangkat (disk, floppy, tty, video, cdrom, ...) di Linux, sehingga Anda dapat menambahkan pengguna ke grup yang sesuai di /etc/group
.
Cara lain adalah membuat "pengguna semu" (mis. Pengguna game). Anda menambahkan pengguna ini ke grup perangkat yang seharusnya. Terakhir, Anda mengubah pemilik program tertentu (seperti program untuk memindai gambar) ke pengguna ini, dan menyetel chmod u+s
. Ini akan menyebabkan program dijalankan sebagai pengguna semu - bukan pengguna sebenarnya, sehingga memiliki akses ke perangkat. Anda dapat menggunakan grup program untuk membatasi pengguna mana yang dapat menjalankan program.
Terakhir, Anda dapat menyetel grup program yang membutuhkan perangkat tertentu ke grup perangkat dan menyetel chmod g+s
. Ini akan menyebabkan program berjalan dengan hak grup (selain hak pengguna normal yang menjalankannya), sehingga memungkinkan akses yang diperluas ke perangkat.