/ sys / 영구적으로 권한을 설정하는 방법은 무엇입니까?


12

X를 사용자로 시작하고에서 키보드 밝기를 설정해야합니다 /sys/class/leds/asus\:\:kbd_backlight/brightness. /sys/권한이 너무 재설정 할 수 있도록 디렉토리, 재부팅 후 다시됩니다. 부팅 할 때마다 모든 사용자가 파일을 쓸 수 있도록 설정하지 않으려면 어떻게 설정합니까?

SDDM과 함께 로그인 관리자로 Archlinux를 사용하고 KDE를 DE로 사용하고 있습니다.


2
시스템 부팅 서비스에 명령을 넣을 수 있습니다.
goldilocks

권한을 설정하는 자체 시스템 서비스를 작성하려고합니까? 아니면 특정 파일에서 이야기합니까?
xoned

전자. "서비스"는 시스템 용어이지만,이 경우에는 데몬이 아니라 일회성 명령 일뿐입니다. rc.local과 같은 일종의 "기타 물건"서비스를 sysV로 만들 수 있습니다. 이 경우 서비스는 단지 쉘 스크립트를 실행하고 거기에 명령을 넣습니다.
goldilocks

답변:


13

sysfs의 권한은 커널 공간에 정의되어 있으며 사용자 공간 도구를 사용하여 변경할 수 없습니다 (커널 측 지원이없는 한).

그러나 자신의 문제에 대해 모든 사람이 해당 경로에 쓸 수 있도록 sudo 항목을 설정할 수 있습니다. ALL ALL = (ALL) NOPASSWD: /usr/bin/tee /sys/class/leds/asus\:\:kbd_backlight/brightness

해당 디렉토리에 쓸 때는 다음과 같은 스크립트를 사용하십시오. echo 1 | sudo /usr/bin/tee "/sys/class/leds/asus::kbd_backlight/brightness"


나는 그것을 시도했지만 항상 암호를 요구합니다. 나는 또한 (ALL) 뒤에 NOPASSWD를 추가하려고했습니다.
16:29에

@ 티모 다시 시도 할 수 있습니까? 내 업데이트 확인
데이지

지금 작동합니다. 문제는 NOPASSWD가없는 다른 항목이 내 항목을 덮어 쓴다는 것입니다. 그리고 다른 답변보다 쉬워서 답변을 수락했습니다. 모두 감사합니다.
xoned

소니 바이오에서 리눅스 민트 데비안을 사용 /sys/devices/platform/sony-laptop/kbd_backlight하고 키보드 백라이트를 제어 하기 위해 파일을 만들려고합니다 . 코드에서 경로를 변경하여이 오류가 발생했습니다. bash: syntax error near unexpected token ( '`입력 한 명령은 ALL ALL = (ALL) NOPASSWD: /usr/bin/tee /sys/devices/platform/sony-laptop/kbd_backlight제발 도와주세요
Indra

/usr/bin/tee와 사이에 쉼표를 추가 할 때까지 우분투 컴퓨터 에서이 작업을 수행 할 수 없었습니다 /sys/class.... 문법을 간단히 살펴본 후 man sudoers쉼표가 필요한 것 같습니다.
세이지 미첼

4

/sys리눅스 의 디렉토리는 가짜이며, 커널은 파일처럼 꾸며져있다. 따라서 권한을 영구적으로 변경한다는 것은 커널을 해킹한다는 것을 의미하며 잘못 권고됩니다. 의견에서 알 수 있듯이 systemd단위 설정은 해결책 일 것입니다 (일반적으로 부팅 프로세스의 일부로 변경 사항을 설정하십시오).


4

비슷한 문제가 있었으므로 노드 서비스를 실행하기 전에 권한을 설정해야했습니다. goldilocks의 의견에 따라이 시스템 스크립트를 작성했습니다.

$ 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

서비스 파일을 작성한 후

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

일반적으로 특정 / sys / 경로에 대한 쓰기 액세스 권한을 부여해야하는 경우가 있습니까? 나의 유스 케이스는 나의 ʻaptop에서 화면 백라이트 밝기를 설정하는 것입니다.
Richrd

부팅 할 때마다 sys 경로가 다시 만들어지기 때문입니다. 그러나 나는 그것에 대해 확신 할만큼 전문가가 아닙니다.
hariseldon78
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.