/ Sys / kalıcı izinler nasıl ayarlanır?


12

X'i kullanıcı olarak başlatıyorum ve klavye parlaklığımı ayarlamam gerekiyor /sys/class/leds/asus\:\:kbd_backlight/brightness. /sys/İzinler de sıfırlar, böylece dizin, yeniden başlatıldıktan sonra yeniden alır. Dosyayı her önyüklemeden sonra tüm kullanıcılar tarafından yazılabilir yapmam gerekmeyecek şekilde nasıl ayarlarım?

Giriş yöneticisi olarak SDDM ve DE olarak KDE ile Archlinux kullanıyorum.


2
Bir systemd önyükleme hizmetine bir komut koyabilirsiniz.
goldilocks 23:13

İzinleri ayarlayan kendi bir systemd hizmeti oluşturmak mı istiyorsunuz? Yoksa belirli bir dosyadan mı konuşuyorsunuz?
Mart'ta

Eski. "Hizmet" sistemd terimidir, ancak bu durumda sadece bir kerelik bir komut olur, bir daemon değildir. Bunu rc.local gibi bir çeşit "çeşitli şeyler" hizmeti yapabilirsiniz sysV altında. Bu durumda, hizmet yalnızca bir kabuk komut dosyası çalıştırır ve komutu oraya koyarsınız.
goldilocks 23:13

Yanıtlar:


13

Hayır yapamazsınız, sysfs izni çekirdek alanında tanımlanır ve kullanıcı alanı araçlarıyla (çekirdek tarafı desteği olmadan) değiştirilemez.

Ancak kendi sorununuz için, herkesin bu yola yazmasına izin veren bir sudo girişi oluşturabilirsiniz, yani ALL ALL = (ALL) NOPASSWD: /usr/bin/tee /sys/class/leds/asus\:\:kbd_backlight/brightness

Ve bu dizine yazarken, böyle bir komut dosyası kullanın, echo 1 | sudo /usr/bin/tee "/sys/class/leds/asus::kbd_backlight/brightness"


Bunu denedim, ama her zaman parola istiyor. Ayrıca bir NOPASSWD eklemeye çalıştım: (ALL) arkasına.
Mart'ta 13

@Timo tekrar deneyebilir misin? Benim güncellemeleri görmek
papatya

Şu an çalışıyor. Sorun, girişimin NOPASSWD olmayan başka biri tarafından üzerine yazılmasıydı. Cevabınızı kabul ettim çünkü diğer cevaplar daha kolaydı. Herkese teşekkürler.
Mart'ta xoned

Ben sony vaio linux Mint Debian kullanıyorum /sys/devices/platform/sony-laptop/kbd_backlightve klavye Arka Işık kontrol etmek için bir dosya oluşturmaya çalışıyorum . Kodunuzda bu hataya yol açan yolu değiştirdim: bash: syntax error near unexpected token ('' Yazdığım komut ALL ALL = (ALL) NOPASSWD: /usr/bin/tee /sys/devices/platform/sony-laptop/kbd_backlightLütfen yardım edin
Indra

Ben arasına virgül ekledi kadar bir Ubuntu makinede bu çalışma alamadım /usr/bin/teeve /sys/class.... Dilbilgisine kısa bir bakıştan sonra man sudoersvirgülün gerekli olduğundan şüpheleniyorum.
Sage Mitchell

4

/sysLinux dizin bu dosyaları olarak giyinmiş çekirdeğin içine bir görünümüdür, sahte. Bu yüzden içindeki izinleri kalıcı olarak değiştirmek çekirdeği hackig anlamına gelir ve bu tavsiye edilmez. Yorumların söylediği gibi, belki de systemdbunu ayarlayan bir birim bir çözüm olabilir (genel olarak, değişikliği önyükleme işleminin bir parçası olarak ayarlayın).


4

Benzer bir sorunum vardı, onaylanmış hizmeti çalıştırmadan önce izinleri ayarlamam gerekiyordu. Goldilocks yorumunu takiben bu systemd betiğini oluşturdum:

$ cat /etc/systemd/system/setledspermissions.service

[Unit]
Description=Set leds writable to everybody
Before=nodered.service

[Service]
Type=oneshot
User=root
ExecStart=/bin/bash -c "/bin/chmod a+w /sys/class/leds/led0/*"

[Install]
WantedBy=multi-user.target

Servis dosyasını yazdıktan sonra

$ sudo systemctl enable setledspermissions.service
$ sudo systemctl start setledspermissions.service
$ sudo systemctl status setledspermissions.service

Bu genellikle belirli / sys / yollarına yazma erişimi vermeniz gerektiğinde gidilecek yol mudur? Kullanım durumum ĺaptop'umda ekran arka plan parlaklığını ayarlamak.
Richrd

Sanırım çünkü sys yolu her önyükleme yeniden oluşturulur. Ama bundan emin olmak için yeterince uzman değilim.
hariseldon78
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.