특정 권한이 있는 파일에 대한 권한 없는 사용자 액세스 허용

특정 권한이 있는 파일에 대한 권한 없는 사용자 액세스 허용

시스템이 강화되어 실행되고 있습니다.젠투그리고 나는 설치했다Xorg,플럭스박스, 그리고콘키함께 최소한의 창 관리자 데스크탑을 만듭니다. 이 시스템에는 2명의 기본 사용자 root와 내가 로그인하는 일반 사용자가 있습니다 .

문제는 Conky가 내부에서 열 및 배터리 정보에 액세스하려고 시도 할 /sys/class/thermal/thermal_zone1/temp/sys/class/power_supply/BAT1/uevent권한 거부 오류가 발생하여 표시하려는 데이터가 비어 있거나 0 값으로 표시된다는 것입니다. 두 파일 모두에 대한 권한 값은 다음과 같습니다.

  File: '/sys/class/thermal/thermal_zone0/temp'
  Size: 4096            Blocks: 0          IO Block: 4096   regular file
Device: 12h/18d Inode: 3719        Links: 1
Access: (0444/-r--r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-03-14 20:14:54.143855495 +0000
Modify: 2015-03-14 20:14:54.143855495 +0000
Change: 2015-03-14 20:14:54.143855495 +0000
 Birth: -

  File: '/sys/class/power_supply/BAT1/uevent'
  Size: 4096            Blocks: 0          IO Block: 4096   regular file
Device: 12h/18d Inode: 3907        Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-03-14 19:23:15.227055847 +0000
Modify: 2015-03-14 19:23:15.227055847 +0000
Change: 2015-03-14 19:23:15.227055847 +0000
 Birth: -

root를 통해 전체 프로세스 액세스 권한을 부여하지 않고 Conky가 특정 권한이 있는 파일에 액세스하도록 허용하는 방법이 있습니까 sudo? 으로 실행할 수 있도록 sudoers 규칙을 설정할 수 있지만 NOPASSWDConky에게 전체 루트 권한을 부여하는 것은 내가 원하는 것이 아닙니다.

바람직하게는 프로세스에 이러한 파일에 대한 읽기 액세스 권한만 부여하고 싶습니다. 부정적인 부작용 없이 이러한 파일을 누구나 읽을 수 있도록 만들 수 있습니까?

편집: 문제의 원인을 찾았습니다. 문제가 되는 것은 파일 자체가 아닙니다. 왜냐하면 파일은 이미 누구나 읽을 수 있기 때문입니다. 사용자가 drwx만 사용하는 포함 디렉토리입니다. /sys/class/thermal및 디렉토리를 /sys/class/power_supply모두 /sys/class가 읽을 수 있도록 허용하면 부정적인 부작용이 있습니까 ?

편집 2: 강화 기능 중 하나가 일반 사용자가 루트가 아닌 경우 이러한 파일에 액세스하는 것을 방지하는 것으로 나타났습니다. 내가 이런 결론에 도달한 이유는 ls -alh일반 사용자로 디렉토리를 실행할 때 모든 rwx 플래그가 0704(drwx---r--)로 설정한 후에도 물음표로 표시되기 때문입니다. 불행히도 현재 나의 유일한 옵션은 NOPASSWD sudo 규칙을 통해 Conky를 루트로 실행하여 Fluxbox가 번거로움 없이 시작할 수 있도록 하는 것입니다.

답변1

내가 귀하의 상황에 처해 있다면 facl 사용을 고려할 것입니다.

sudo setfacl -Rm u:1000:r /sys/class/

여기서 1000은 conky가 실행되는 사용자의 UID입니다. 위의 예에서는 UID 1000에서 실행되는 모든 프로세스에서 읽을 수 있도록 /sys/class 아래의 모든 파일을 변경하지만 특정 파일을 선택한 경우에는 더 제한될 수 있습니다.

위에서 언급한 두 파일을 읽을 수 있게 하려는 경우:

sudo setfacl -m u:1000:rx /sys
sudo setfacl -m u:1000:rx /sys/class/
sudo setfacl -m u:1000:r /sys/class/thermal
sudo setfacl -m u:1000:r /sys/class/power_supply

또한 Gentoo 강화 커널을 실행하는 컴퓨터가 있는데 그것이 액세스 제어 목록을 어떻게 처리하는지 잘 모르겠습니다. 테스트 후에 이 답변을 업데이트하겠습니다.

나는 또한 conky running을 가지고 있지만 그러한 권한 장애물을 어떻게 극복했는지 기억이 나지 않습니다.

관련 정보