Saya memiliki bug di mana izin /dev/input/event*
salah, jadi ketika saya menggunakan Mumble , aplikasi tidak dapat mendeteksi penekanan tombol. Jika saya menjalankan perintah berikut ini "memperbaiki" masalah, tapi saya ingin perbaikan permanen.
sudo chmod a+r /dev/input/event/*
Apa yang menentukan izin pada /dev/input/event*
dan bagaimana cara mengaturnya secara permanen?
permissions
popey
sumber
sumber
/dev/input/event/*
maka Anda pada dasarnya memberi semua orang akses untuk mengendus keyboard Anda, misalnya kata sandi yang Anda ketikkan. Pada sistem pengguna tunggal ini mungkin tidak terlalu penting, tetapi bahkan pada sistem pengguna tunggal kami biasanya menggunakan pengguna sistem sebagai lapisan keselamatan tambahan jika ada komponen yang dikompromikan, dan dengan memberikan misalnyanobody
akses pengguna ke keyboard Anda aliran input Anda melemahkan perlindungan ini. Meskipun ini mungkin "memperbaiki" Bergumam, itu bukan solusi umum yang tepat untuk masalah Anda. Harus ada cara yang lebih baik./dev/input
salah, dan apa kepemilikan dan izin saat ini (mungkin dengan output darils -l
)? Apakah masalah bahwainput
grup tidak memiliki izin baca (atau bukan pemilik grup)? Di sistem saya, file acara memilikiroot:input
kepemilikan dan pemilik pengguna dan grup dapat membacanya. Jika Anda tidak memiliki ini, Anda mungkin harus mencoba mengaturnya daripada membiarkan semua orang membacanya. Jika Anda melakukan hal sudah begini, mungkin cukup untuk Mumble untuk menjalankan dengan kekuasaaninput
kelompok.Jawaban:
Cara yang lebih fleksibel untuk mengelola izin pada file adalah dengan menggunakan ACL .
Jika Anda benar-benar perlu membuat ini permanen maka Anda dapat menggunakan aturan udev yang mengaturnya untuk perangkat input acara Anda
tambahkan file /etc/udev/rules.d/99-userdev-input.rules dengan:
Anda dapat memeriksa izin ACL dengan
sumber
Saya tidak tahu apa yang awalnya mengatur izin perangkat karakter / dev / input / event *
tetapi, saya tahu Anda dapat mengubah izin tersebut dengan perangkat lunak yang ada di sistem Anda secara default sebagai bagian dari coreutils. lihat perintahnya
man mknod
.Izin perangkat acara saya adalah:
berikut ini beberapa contoh penggunaan:
jika Anda memerlukan info lebih lanjut untuk memutuskan nomor besar dan kecil, lihat di sini
Sekarang, Anda mengatakan izinnya salah. Jadi sesuatu pasti salah, dan hal itu harus dijalankan sebagai root. mknod dapat digunakan untuk membuat perangkat, tetapi mkdev juga bisa. Anda mungkin ingin melihat izin apa pun tindakan default untuk mkdev, dan mknod.
Seperti dalam contoh saya: / dev / input / event0 memiliki izin crw-rw, tetapi izin default, dari lolwat ditetapkan ke crw-r - r--
Saya memiliki beberapa ketidakpastian, apakah jenis perangkat menentukan izin asli. Anda dapat mencoba ini untuk mengetahuinya.
Berikut ini tautan lain untuk info lebih lanjut tentang mknod
sumber
Pada dasarnya, Anda perlu menambahkan file
/etc/udev/rules.d/
(Anda bisa menamainya seperti75-input-events.conf
)Dan tambahkan baris
KERNEL=="eventX" , SUBSYSTEM=="input", MODE="0777"
untuk setiap peristiwa ke dalam file itu, di mana x adalah nomornya. Misalnya, saya memiliki acara 0 hingga 9, jadi saya pribadi akan melakukannya untuk masing-masing. Jawaban terakhir di utas ini menyarankan Anda bisa menambahkanKERNEL==event*
(yaitu, dengan kartu liar) juga.sumber
Saran saya adalah agar Anda menginstal aplikasi input-utils
Ini adalah kumpulan utilitas yang berguna ketika bekerja dengan lapisan input kernel Linux (versi 2.6 dan yang lebih baru). Termasuk di dalamnya adalah utilitas untuk mencantumkan perangkat input yang dikenal oleh kernel, menunjukkan aktivitas input yang diterima oleh perangkat, dan meminta atau memodifikasi peta keyboard.
Perintah yang menarik adalah:
Itu membuang semua perangkat input dan rincian terkait tentang perangkat.
Seseorang dapat mengamati peristiwa input menggunakan perintah, dengan menentukan nomor perangkat Nth:
Seseorang kemudian dapat membuang pemetaan keyboard dari perangkat acara tertentu menggunakan perintah, dengan menentukan nomor perangkat Nth:
Dengan alat-alat ini orang dapat men-debug sistem untuk melihat apakah input menghasilkan kode acara yang diharapkan dan karenanya membantu memilah masalah seperti mengapa kunci tidak berfungsi atau dipetakan secara tidak benar.
Udev adalah manajer perangkat untuk kernel Linux. Ini mengelola node perangkat di / dev dan menangani semua tindakan ruang pengguna saat menambah atau menghapus perangkat.
Evdev adalah antarmuka peristiwa input generik di kernel Linux. Ini menggeneralisasi peristiwa input mentah dari driver perangkat dan membuatnya tersedia melalui perangkat karakter di
/dev/input/
direktori.Setiap kali perubahan terjadi dalam struktur perangkat, kernel memancarkan uevent yang diambil oleh udev. udev kemudian mengikuti aturan sebagaimana dideklarasikan di direktori /etc/udev/rules.d, /run/udev/rules.d dan /lib/udev/rules.d direktori.
Berdasarkan informasi yang terkandung dalam uevent, ia menemukan aturan atau aturan yang diperlukan untuk memicu dan melakukan tindakan yang diperlukan.
Tindakan ini dapat membuat atau menghapus file perangkat, tetapi juga dapat memicu pemuatan file firmware tertentu ke dalam memori kernel.
sumber
Dalam terminal run:
Turun ke baris yang mengatakan "keluar 0" dan di baris di atasnya ketik:
Tekan Ctrl + x untuk keluar. Ini akan menanyakan apakah Anda ingin menyimpan. Pukul y. Ini akan menanyakan Anda apa yang harus disimpan. Tekan saja Enter.
Sekarang, perintah itu harus mulai di setiap boot dan dengan demikian memberi Anda izin ke folder itu. File /etc/rc.local secara otomatis memiliki hak akses root sehingga Anda tidak perlu memasukkan kata sandi untuk melakukan ini.
sumber