Unprivilegierten Benutzern den Zugriff auf bestimmte privilegierte Dateien erlauben

Unprivilegierten Benutzern den Zugriff auf bestimmte privilegierte Dateien erlauben

Ich habe ein System mit gehärtetemGentoound ich habe installiertXorg,Fluxbox, UndConkyzusammen, um einen minimalen Fenstermanager-Desktop zu erstellen. Innerhalb dieses Systems habe ich 2 Hauptbenutzer rootund meinen normalen Benutzer, bei dem ich mich anmelde.

Das Problem besteht darin, dass Conky versucht, von innen auf Wärme- und Batterieinformationen zuzugreifen /sys/class/thermal/thermal_zone1/tempund /sys/class/power_supply/BAT1/ueventFehler mit verweigerter Berechtigung erhält, was dazu führt, dass die Daten, die ich anzeigen möchte, leer oder als Nullwerte angezeigt werden. Dies sind die Berechtigungswerte für beide Dateien

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

Gibt es eine Möglichkeit, Conky den Zugriff auf bestimmte Dateien mit Berechtigungen zu erlauben, ohne dem gesamten Prozess rootZugriff über zu gewähren sudo? Ich könnte eine Sudoers-Regel einrichten, um die Ausführung mit zu ermöglichen NOPASSWD, aber Conky volle Root-Berechtigungen zu erteilen, ist nicht das, was ich möchte.

Am liebsten würde ich dem Prozess nur Lesezugriff auf diese Dateien geben. Könnte ich diese Dateien einfach allgemein lesbar machen, ohne negative Nebenwirkungen?

Bearbeiten: Ich habe die Ursache des Problems gefunden. Das Problem sind nicht die Dateien selbst, da sie bereits allgemein lesbar sind, sondern ihr enthaltenes Verzeichnis, das nur vom Benutzer aufgerufen werden kann. Wird es negative Nebenwirkungen geben, wenn ich zulasse, dass sowohl die /sys/class/thermalDateien /sys/class/power_supplyals auch die /sys/classVerzeichnisse allgemein lesbar werden?

Edit2: Es stellte sich heraus, dass eine der Härtungsfunktionen normale Benutzer daran hindert, auf diese Dateien zuzugreifen, ohne Root-Rechte zu haben. Der Grund, warum ich zu dieser Schlussfolgerung kam, ist, dass, wenn ich ls -alhdie Verzeichnisse als mein normaler Benutzer ausführe, alle rwx-Flags als Fragezeichen angezeigt werden, selbst nachdem ich sie auf 0704 gesetzt habe (drwx---r--). Meine einzige Option ist jetzt leider, Conky als Root über eine NOPASSWD-Sudo-Regel auszuführen, damit Fluxbox es problemlos starten kann.

Antwort1

Wenn ich in Ihrer Situation wäre, würde ich die Verwendung von facl's in Betracht ziehen:

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

Wobei 1000 die UID des Benutzers ist, unter dem Conky ausgeführt wird. Das obige Beispiel würde alle Dateien unter /sys/class so ändern, dass sie von jedem Prozess gelesen werden können, der unter UID 1000 ausgeführt wird. Die Einschränkung kann jedoch durch die Auswahl bestimmter Dateien weiter eingeschränkt werden.

Wenn Sie nur möchten, dass die beiden oben genannten Dateien lesbar sind:

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

Ich habe auch eine Maschine, auf der ein gehärteter Gentoo-Kernel läuft, und ich bin nicht sicher, wie dieser mit Zugriffskontrolllisten umgeht. Ich werde diese Antwort nach dem Testen aktualisieren.

Ich habe auch Conky am Laufen, kann mich aber nicht erinnern, wie ich diese Berechtigungshürden umgangen habe.

verwandte Informationen