Permitir el acceso de usuarios sin privilegios a archivos privilegiados específicos

Permitir el acceso de usuarios sin privilegios a archivos privilegiados específicos

Tengo un sistema funcionando reforzadoGentooy lo he instaladoxorg,caja de flujo, yNarigónjuntos para crear un escritorio de administrador de ventanas mínimo. Dentro de este sistema tengo 2 usuarios principales rooty mi usuario normal en ejecución en el que inicio sesión.

El problema es que Conky está intentando acceder a la información térmica y de la batería desde dentro /sys/class/thermal/thermal_zone1/tempy /sys/class/power_supply/BAT1/ueventobtiene errores de permiso denegado, lo que hace que los datos que me gustaría mostrar aparezcan vacíos o con valores cero. Estos son los valores de permiso en ambos archivos.

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

¿Hay alguna manera de permitir que Conky acceda a archivos privilegiados específicos sin darle rootacceso a todo el proceso a través de sudo? Podría configurar una regla sudoers para permitir que se ejecute NOPASSWD, pero otorgarle a Conky permisos completos de root no es lo que me gustaría hacer.

Preferiblemente, solo me gustaría otorgarle al proceso acceso de lectura a estos archivos. ¿Podría simplemente hacer que estos archivos sean legibles en todo el mundo sin efectos secundarios negativos?

Editar: encontré la raíz del problema. El problema no son los archivos en sí mismos, ya que ya son legibles en todo el mundo, es el directorio que los contiene, que solo es drwx por usuario. ¿Habrá algún efecto secundario negativo si permito que los directorios /sys/class/thermaly /sys/class/power_supplytambién /sys/classsean legibles en todo el mundo?

Edit2: Resulta que una de las funciones de refuerzo impide que los usuarios normales accedan a estos archivos sin ser root. La razón por la que llegué a esta conclusión es que cuando ejecuto ls -alhlos directorios como mi usuario normal, todos los indicadores rwx aparecen como signos de interrogación incluso después de configurarlos en 0704 (drwx---r--). Desafortunadamente, mi única opción ahora es ejecutar Conky como root, a través de una regla sudo NOPASSWD para que Fluxbox pueda iniciarlo sin problemas.

Respuesta1

Si estuviera en tu situación, consideraría usar facl's:

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

Donde 1000 es el UID del usuario bajo el cual se ejecuta conky. El ejemplo anterior cambiaría todos los archivos en /sys/class para que sean legibles por cualquier proceso ejecutado bajo UID 1000, pero puede ser más limitado si se seleccionan archivos específicos.

Si solo desea que los dos archivos mencionados anteriormente sean legibles:

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

También tengo una máquina que ejecuta un kernel reforzado Gentoo y no estoy seguro de cómo maneja las listas de control de acceso. Actualizaré esta respuesta después de realizar la prueba.

También tengo conky ejecutándose, pero no recuerdo cómo superé esos obstáculos de permisos.

información relacionada