sudo oder acl oder setuid/setgid?

sudo oder acl oder setuid/setgid?

aus einem Grund, den ich nicht wirklich verstehe, will jeder sudo für alles und jedes. Bei der Arbeit haben wir sogar so viele Einträge, wie es Möglichkeiten gibt, eine Protokolldatei zu lesen (Kopf/Ende/Cat/mehr, ...).

Ich denke, sudo ist hier die Niederlage.

Ich würde lieber eine Mischung aus Setgid/Setuid-Verzeichnissen verwenden und hier und da eine ACL hinzufügen, aber ich muss vor dem Start unbedingt wissen, was die Best Practices sind.

Unsere Server haben %admin, %production, %dba, %users – also viele Gruppen und viele Benutzer. Jeder Dienst (mysql, apache, ...) hat seine eigene Art, Berechtigungen zu installieren, aber Mitglieder der Gruppe %production müssen in der Lage sein, Konfigurationsdateien oder sogar Protokolldateien zu konsultieren. Es gibt immer noch die Lösung, sie den richtigen Gruppen (mysql...) hinzuzufügen und die richtigen Berechtigungen festzulegen. Aber ich möchte nicht alle Benutzer benutzermodifizieren, ich möchte die Standardberechtigungen nicht ändern, da sie sich nach jedem Upgrade ändern könnten.

Andererseits könnte ich problemlos ACLs festlegen und/oder Setuid/Setgid für Verzeichnisse mischen, ohne die Standarddistribution zu „verunstalten“.

Was denkst du darüber ?

Am Beispiel von MySQL würde das folgendermaßen aussehen:

setfacl d:g:production:rx,d:other::---,g:production:rx,other::--- /var/log/mysql /etc/mysql

Halten Sie das für eine gute Vorgehensweise oder sollte ich definitiv usermod -G mysql verwenden und mit dem Standardberechtigungssystem spielen?

Danke

Antwort1

Bewährte Vorgehensweisen: Pflegen Sie die sudoers-Datei und verwenden Sie sudo.

Auf meinem privaten Rechner bevorzuge ich setuid/gid, aber ich bin der Einzige, der meinen Computer nutzt, und ich tue dies nicht bei so offensichtlich gefährlichen Dingen wie rm.

Antwort2

Die am häufigsten verwendeten und bewährtesten Vorgehensweisen sind sudo. Sudo bietet Ihnen eine fein abgestimmte Kontrolle und die Konfiguration kann mehrere Maschinen gleichzeitig verwalten.

Die Verwendung von ACLs kann dies ergänzen – sudoführt Vorgänge als Root aus; ACLs erteilen und entziehen Benutzern und Gruppen Rechte für Verzeichnisse und Dateien. Ich würde nicht darauf zählen, dass setgid und setuid irgendetwas Sinnvolles bewirken.

Ich würde auch die Wheel-Gruppe implementieren. Dies erhöht die Sicherheit. Überprüfen Sie, ob Ihr suProgramm die Wheel-Gruppe unterstützt.

Und noch etwas: Wenn Sie über diese Programme verfügen viewoder lessdiese zum Lesen einer Protokolldatei verwenden möchten, gehen Sie ein Risiko ein: Beide Programme bieten Shell-Zugriff.

Antwort3

Mir scheint, dass die Option „sudoers“ etwas kompakter ist als „setuid/setguid/ACL“.

Ohne Gruppierung der Benutzer wird Ihr ACLS sehr lang. Und wenn Sie Benutzer gruppieren, sind Sie wieder am Ausgangspunkt.

Das größere Problem ist, dass ohne eine Art zentrale Verwaltung die Zugriffskontrolle über das gesamte Dateisystem verteilt wird. Natürlich kann man das leicht umgehen, beispielsweise mit Makros, Vorlagen, Konfigurationsverwaltung usw. Aber das ist eine ganz andere Ebene, die nichts zur Reduzierung der Komplexität beiträgt.

In meinem kleinen Drupal-Shop verwende ich ACLs ziemlich häufig für alle Arbeitsdateien, aber sudo für alle Verwaltungszugriffe. Die Konfigurationsverwaltungsebene, die ich verwende, ist Ansible und das Schöne daran ist, dass ich problemlos Vorlagen für Benutzer, ihre Rollen und damit für die Gruppen erstellen kann, die sie auf welchen Maschinen bekommen usw. Sudoers wird ähnlich verwaltet. Das scheint mir die beste Vorgehensweise zu sein, weil es am transparentesten ist.

Natürlich habe ich wahrscheinlich nicht annähernd so viele Benutzer oder Gruppen wie Sie. Ich könnte mir vorstellen, ACLs auch in die Konfigurationsverwaltung einzubinden. Aber ich sehe beim besten Willen keine einfache Möglichkeit, viele Maschinen, viele Benutzer und viele Gruppen auf diese Weise zu verwalten.

verwandte Informationen