Ya, Anda dapat menulis aturan udev.
Dalam /etc/udev/rules.d
membuat file 30-mydevice.rules
(angka harus dari 0 hingga 99 dan memutuskan hanya tentang urutan skrip yang berjalan; nama tidak terlalu penting, itu hanya bersifat deskriptif; .rules
ekstensi diperlukan, meskipun)
Dalam contoh ini saya mengasumsikan perangkat Anda berbasis USB dan Anda tahu itu vendor dan id produk (dapat diperiksa menggunakan lsusb -v
), dan Anda menggunakan mydevice
grup pengguna Anda harus berada di dalam untuk menggunakan perangkat. Ini harus berupa 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 untuk ditulis oleh pemiliknya (mungkin root) dan grup yang ditentukan.
30
dalam nama file?Salah satu caranya adalah menambahkan pengguna ke "devivce-group" yang sesuai. Ada berbagai macam grup untuk berbagai jenis perangkat (disk, floppy, tty, video, cdrom, ...) di Linux, sehingga Anda dapat menambahkan pengguna ke grup terkait di / etc / group.
Cara lain adalah dengan membuat "pengguna semu" (mis. Pengguna game). Anda menambahkan pengguna ini ke grup perangkat yang seharusnya. Akhirnya Anda mengubah pemilik program tertentu (seperti program untuk memindai gambar) untuk pengguna ini, dan mengatur "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 mengatur grup program yang membutuhkan perangkat khusus untuk grup perangkat dan mengatur "chmod g + s". Ini akan menyebabkan program berjalan dengan hak-hak grup (di samping hak pengguna normal yang menjalankannya), sehingga memungkinkan akses yang diperluas ke perangkat.
sumber
Ya, Anda bisa, tetapi Anda perlu izin root pada awalnya. Sejak linux 2.2, ia memiliki Kemampuan, gunakan izin root split. Dengan di bawah daftar, Anda dapat menggunakan:
setcap cap_net_raw,cap_net_admin=eip xxxx
xxxx adalah program yang dapat dieksekusi, Anda dapat memanggil libpcap dengan diri Anda sendiri.
sumber