/ 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.