2

У меня есть система, на которой установлен защищенный Gentoo, и я установил Xorg, Fluxbox и Conky вместе, чтобы создать минимальный рабочий стол менеджера окон. В этой системе у меня есть 2 основных пользователя, root и мой обычный работающий пользователь, в который я захожу.

Проблема в том, что Conky пытается получить доступ к информации о температуре и аккумуляторе из /sys/class/thermal/thermal_zone1/temp и /sys/class/power_supply/BAT1/uevent и получает ошибки с отказом в разрешении, в результате чего я хотел бы получить данные дисплей показывает пустой или как нулевые значения. Это значения разрешений для обоих файлов

  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: -

Есть ли способ, позволяющий Conky получать доступ к определенным привилегированным файлам, не предоставляя всему процессу root доступ через sudo? Я мог бы настроить правило sudoers, чтобы оно могло работать с NOPASSWD , но предоставление Conky полных полномочий root не то, что я хотел бы сделать.

Предпочтительно, я хотел бы только дать процессу доступ на чтение к этим файлам. Могу ли я просто сделать эти файлы доступными для чтения без негативных побочных эффектов?

Изменить: я нашел корень проблемы. Проблема заключается не в самих файлах, поскольку они уже доступны для чтения всему миру, а в том, что они содержат каталог, доступный только пользователю drwx. Будет ли какой-либо отрицательный побочный эффект, если я позволю /sys/class/thermal и /sys/class/power_supply а также каталогам /sys/class стать общедоступными для чтения?

Edit2: Оказывается, одна из функций защиты не позволяет обычным пользователям получить доступ к этим файлам, не будучи root. Причина, по которой я пришел к такому выводу, заключается в том, что когда я запускаю ls -alh в каталогах как мой обычный пользователь, все флаги rwx отображаются в виде вопросительных знаков даже после того, как я установил их в 0704 (drwx --- r--). К сожалению, теперь я могу только запустить Conky от имени пользователя root с помощью правила sudo NOPASSWD, чтобы Fluxbox мог запускать его без проблем.

1 ответ1

0

Если бы я был в вашей ситуации, я бы рассмотрел использование facl:

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

Где 1000 - это UID пользователя, под которым запускается conky. Приведенный выше пример изменил бы все файлы в /sys /class для чтения любым процессом, выполняющимся с UID 1000, но может быть более ограниченным, если выбраны определенные файлы.

Если вы просто хотели, чтобы два файла, упомянутых выше, были читабельными:

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, но я не могу вспомнить, как я преодолел эти препятствия с разрешениями.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .