/ Dev içindeki izinleri ne belirler?


11

İzinlerin /dev/input/event*yanlış olduğu bir hata var , bu yüzden Mumble'ı kullandığımda uygulama tuş basımlarını algılayamıyor. Aşağıdaki komutu çalıştırırsam sorunu "düzeltir", ancak kalıcı bir düzeltme istiyorum.

sudo chmod a+r /dev/input/event/*

İzinleri ne belirler ve /dev/input/event*kalıcı olarak nasıl ayarlarım?


6
"Tümünü" okuma izni /dev/input/event/*verirseniz, aslında herkesin klavyenizi koklaması için erişim izni verdiğinizi, örneğin yazdığınız şifreleri unutmayın. Tek kullanıcılı bir sistemde bu çok önemli olmayabilir, ancak tek kullanıcılı bir sistemde bile, bazı bileşenlerden ödün verilmesi durumunda ve örneğin nobodykullanıcıya klavyenize erişim sağlayarak sistem kullanıcılarını genellikle ekstra bir güvenlik katmanı olarak kullanırız Bu akışı zayıflattığınız giriş akışı. Bu Mumble'ı "düzeltebilir" olsa da, sorununuza uygun bir genel çözüm değildir. Daha iyi bir yol olmalı.
Robie Basak

3
@popey Düğümlerdeki izinlerin neden /dev/inputyanlış olduğu ve şu anda sahiplik ve izinlerin ne olduğu (belki de çıktısıyla ls -l) hakkında daha fazla şey söyleyebilir misiniz ? inputGrubun okuma izinlerine sahip olmaması (veya grup sahibi olmaması) sorunu mu var? Sistemimde etkinlik dosyalarının root:inputsahipliği var ve hem kullanıcı hem de grup sahipleri bunlardan okuyabilir. Eğer buna sahip değilseniz, belki de herkesin okumasına izin vermek yerine bu şekilde kurmaya çalışmalısınız. Eğer varsa yapmak bu var Mumble yetkileri ile çalıştırmak için, bu yeterli olabilir inputgrubunda.
Eliah Kagan

@EliahKagan cevabım hakkında ne düşünüyorsun? lütfen inceleyebilir misin
Sergiy Kolodyazhnyy

evet bu kötü. ACL kullanın. aşağıdaki cevabımı gör
solsTiCe

Dağıtım sürümünü veya xorg-server sürümünü bana bildirir misiniz? çünkü xorg-server 2: 1.9.99.902-2ubuntu1 sorunu çözmüştü.
Tohid Tamboli

Yanıtlar:


4

Dosyalar üzerindeki izni yönetmenin daha esnek bir yolu ACL kullanmaktır .

sudo setfacl -m u:popey:rw /dev/input/eventx

Bunu gerçekten kalıcı hale getirmeniz gerekiyorsa, olay giriş cihazınız için ayarlayan bir udev kuralı kullanabilirsiniz.

şununla bir dosya /etc/udev/rules.d/99-userdev-input.rules ekleyin :

KERNEL=="event*", SUBSYSTEM=="input", RUN+="/usr/bin/setfacl -m u:popey:rw $env{DEVNAME}"

EKL iznini şuradan kontrol edebilirsiniz:

getfacl /dev/input/event*

2

/ Dev / input / event karakter cihazlarının izinlerini başlangıçta neyin ayarladığını bilmiyorum *

ancak, bu izinleri varsayılan olarak sisteminizde bulunan bir yazılımla coreutils'in bir parçası olarak değiştirebileceğinizi biliyorum. komuta bakın man mknod.

Etkinlik aygıtlarımın izinleri:

crw-rw ---- 1 kök girişi 13, 64 Nis 14 06:39 / dev / input / event0

İşte bazı kullanım örnekleri:

~$ sudo mknod lolwat c 4 64 
~$ sudo mknod lolwatnow c 4 64  -m 777
~$ ls -l lolwat*
crw-r--r-- 1 root root 4, 64 Apr 14 08:07 lolwat
crwxrwxrwx 1 root root 4, 64 Apr 14 08:08 lolwatnow

büyük ve küçük numaralara karar vermek için daha fazla bilgiye ihtiyacınız varsa, buraya bakın

Şimdi izinlerin yanlış olduğunu söylüyorsun. Bu yüzden bir şey onları yanlış ayarlamalı ve bu şey kök olarak çalıştırılmalıdır. mknod bir aygıt oluşturmak için kullanılabilir, ancak mkdev de kullanılabilir. mkdev ve mknod için varsayılan eylemlerin izinlerine bakmak isteyebilirsiniz.

Örneklerimdeki gibi: / dev / input / event0'ın crw-rw izinleri vardır, ancak lolwat'ın varsayılan izinleri crw-r - r-- olarak ayarlanmıştır.

Cihaz türünün orijinal izinleri dikte edip etmediği konusunda bazı belirsizlikler var. Bunu öğrenmek için bunu deneyebilirsiniz.

İşte mknod hakkında daha fazla bilgi için başka bir bağlantı


mumble kök olarak mı çalışıyor?
j0h

1

Temel olarak, içine bir dosya eklemeniz gerekir /etc/udev/rules.d/(buna benzer bir ad verebilirsiniz 75-input-events.conf)

Ve KERNEL=="eventX" , SUBSYSTEM=="input", MODE="0777"o dosyaya her olay için satır ekleyin , burada x sayıdır. Örneğin, 0'dan 9'a kadar olaylarım var, bu yüzden her biri için kişisel olarak yapacağım. Bu konudaki son cevap sizin de KERNEL==event*ekleyebileceğinizi (yani joker olarak) önermektedir .


0

Benim önerim uygulama giriş-utils yüklemek

sudo -i
apt-get update
apt-get install input-utils

Bu, Linux çekirdeğinin giriş katmanı (sürüm 2.6 ve üstü) ile çalışırken kullanışlı bir yardımcı program koleksiyonudur. Çekirdek tarafından bilinen giriş aygıtlarını listelemek, bir aygıt tarafından alınan giriş olaylarını göstermek ve klavye haritalarını sorgulamak veya değiştirmek için yardımcı programlar bulunur.

İlgilenilen emir:

sudo -i 
lsinput

Tüm giriş aygıtlarını ve aygıtla ilgili ayrıntıları dışarı atar.

Nth cihaz numarasını belirterek komutu kullanarak giriş olaylarını gözlemleyebilirsiniz:

sudo -i
input-events <device number>

Daha sonra Nth cihaz numarasını belirterek komutu kullanarak belirli bir olay cihazının klavye eşlemesini dökebilirsiniz:

sudo -i
input-kyb <device number>

Bu araçlarla bir sistem, girdilerin beklenen olay kodlarını üretip üretmediğini görmek için hata ayıklayabilir ve bu nedenle anahtarların neden çalışmadığı veya yanlış eşleştirildiği gibi sorunları çözmeye yardımcı olabilir.

Udev Linux çekirdeğinin aygıt yöneticisidir. / Dev içindeki aygıt düğümlerini yönetir ve aygıt eklerken veya kaldırırken tüm kullanıcı alanı işlemlerini gerçekleştirir.

Evdev, Linux çekirdeğindeki genel bir giriş olayı arayüzüdür /dev/input/.

Cihaz yapısında her değişiklik meydana geldiğinde, çekirdek udev tarafından alınan bir canlandırma yayar. udev daha sonra /etc/udev/rules.d, /run/udev/rules.d ve /lib/udev/rules.d dizinlerinde belirtilen kurallara uyar.

Etkinliğin içerdiği bilgilere dayanarak, tetiklemesi gereken kuralı veya kuralları bulur ve gerekli eylemleri gerçekleştirir.

Bu eylemler aygıt dosyaları oluşturmak veya silmek olabilir, ancak belirli bellenim dosyalarının çekirdek belleğine yüklenmesini de tetikleyebilir.


0

Bir terminal çalışmasında:

sudo nano -b /etc/rc.local

"0 çıkış" yazan satıra gidin ve üstündeki bir satıra şunu yazın:

sudo chmod a + r / dev / giriş / olay

Bundan çıkmak için Ctrl + x tuşlarına basın. Kaydetmek isteyip istemediğinizi soracaktır. Y tuşuna basın. Size neyi kaydedeceğinizi soracaktır. Enter'a basmanız yeterlidir.

Şimdi, bu komut her önyüklemede başlamalı ve böylece size bu klasöre izin vermelidir. /Etc/rc.local dosyası otomatik olarak kök ayrıcalıklarına sahiptir, bu nedenle bunu yapmak için bir parola girmeniz gerekmez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.