Ich bin inspiriert worden, wieder mit den Linux-Fähigkeiten herumzuspielen. Mein Lieblingsprojekt ist es, die Setuid in vielen Binärdateien zu ersetzen und Nicht-Root-Benutzern Zugriff auf zusätzliche privilegierte Dienstprogramme zu gewähren. Dies erreiche ich, indem ich die relevanten Fähigkeiten ( +ei
, das Problem ist bei +ep
) über hinzufüge setcap
und mein persönliches Benutzerkonto ( jdavis4
) so konfiguriere, dass diese Fähigkeiten seiner Sitzung beim Anmelden über zugewiesen werden, pam_cap.so
und es läuft hervorragend. Ich kann einzelnen Benutzern über die Fähigkeit.conf Zugriff auf „Ping“ und „Kill“ gewähren.
Das Problem, das ich habe, ist jedoch, dass mir aufgefallen ist, dass ein Administrator, wenn dies ein Produktionssystem wäre, wahrscheinlich Berechtigungen durch eine Art aggregierte Einheit zuweisen möchte, damit er dies nicht jedes Mal für jeden einzelnen Benutzer tun muss, wenn er einen erstellt. Auf diese Weise kann ein Benutzer einfach zur Gruppe „filesystemAdmin“ hinzugefügt werden und erhält Dinge wie CAP_DAC_OVERRIDE
oder zu „ProcessManagement“ hinzugefügt werden und erhält Dinge wie CAP_SYS_NICE
und CAP_SYS_KILL
.
Ist das derzeit möglich?
Antwort1
Wir haben @group
Syntax zur pam_cap.so
s- capability.conf
Unterstützung in hinzugefügt libcap-2.29
. Zum Zeitpunkt des Schreibenslibcap
ist in der Version 2.49.
Es gibt auch einige Dokumentationen fürpam_cap.so
Hier.
Antwort2
Was Sie tun möchten, ist nicht möglich. Es werden nicht nur pam_cap
die vererbbaren Fähigkeiten manipuliert (es werden also tatsächlich überhaupt keine zulässigen/wirksamen Fähigkeiten gewährt), sondern es werden auch nur Benutzer und keine Gruppen (nicht einmal primäre Gruppen) behandelt.
Antwort3
Ich kann keine Dokumentation finden, die besagt, dass capability.conf direkt einer Gruppe zugewiesen werden kann.
Dies scheint ein Produkt der Notwendigkeit für pam_cap zu sein, dem Authentifizierungsprozess die Privilegien zu „entziehen“, der wahrscheinlich „alle“ Fähigkeiten hat oder genug, um solche zu werden. Dies führt zu einer Tendenz, bei der kumulative additive Zuordnungen unklug erscheinen, da dies schnell zu einer „nicht überprüfbaren Struktur“ werden könnte. Daher sind Zuweisungen über capability.conf nicht kumulativ. Wenn Sie eine Übereinstimmung finden, ist das, was Sie bekommen. Nicht mehr und nicht weniger.
Nachdem das gesagt worden ist:
Es ist möglich, pam_cap so zu konfigurieren, dass Funktionen aus einer beliebigen Datei im Format /etc/security/capability.conf geladen werden.
Es ist möglich, Skripte innerhalb einer PAM-Konfiguration zu verwenden. Es wäre relativ einfach, eine pro Benutzer erstellte Datei „capability.conf“ für den authentifizierenden Benutzer zu erstellen, basierend auf seinen Gruppenmitgliedschaften, und sie dem Modul „pam_cap“ zuzuführen.
Es ist weder „elegant“ noch „ideal“, aber für eine große LDAP-ähnliche Benutzerbasis ist es wahrscheinlich besser überprüfbar als eine „Synchronisierung über Layer-8-Jellyware“ zwischen gültigen Benutzern und einem Volltexteintrag pro Benutzer in einer einzelnen /etc/security/capability.conf.