Wie kann ich die Administratorrechte für verschiedene Konfigurationsdateien beschränken?

Wie kann ich die Administratorrechte für verschiedene Konfigurationsdateien beschränken?

Ich möchte, dass ein Administrator die Datei /etc/fstab bearbeiten kann, ein anderer Administrator die Datei fstab jedoch nicht bearbeiten kann.

Für alle weiteren Verwaltungsaufgaben benötigen beide Administratoren Zugriff.

Ist das möglich?

Ich gehe davon aus, dass ich irgendwie einrichten muss, auf welche Dateien „sudo“ ihnen Zugriff gewährt. Oder vielleicht einfach nicht-administrative Konten einrichten und dann eine Gruppe namens fstab-access erstellen und einen der Benutzer dieser hinzufügen und Berechtigungen für diese Gruppe einrichten...? Bin ich auf dem richtigen Weg?

Antwort1

Wenn Sie ihnen Zugriff auf alles gewähren, ist natürlich alles möglich. Sie können einem Benutzer jedoch erlauben, eine bestimmte Datei zu bearbeiten und sonst nichts. Beispiel:

user ALL = sudoedit /etc/fstab

Würde dem Benutzer nur erlauben, /etc/fstab zu bearbeiten.

Antwort2

Wenn Sie einem Benutzer lediglich das Bearbeiten erlauben möchten /etc/fstab, können Sie dies auf verschiedene Arten tun:

  • Stellen Sie sicher, dass Zugriffskontrolllisten aktiviert sind ( aclOption im /etc/fstabEintrag für /), und setfacl -m user:joe:rw /etc/fstab.
  • Regel hinzufügen sudoers: Ausführen visudound Zeile hinzufügenjoe ALL = sudoedit /etc/fstab

Ich empfehle die Sudo-Methode, da sich damit leicht prüfen lässt, wer was tun darf.

Wenn Sie einem Benutzer jedoch das Bearbeiten gestatten /etc/fstab, kann er indirekt Root-Rechte erlangen, indem er einen Eintrag hinzufügt, der es ihm ermöglicht, ein externes oder Loop-Dateisystem zu mounten, auf dem er eine Setuid-Root-Binärdatei installiert hat.

Es ist ziemlich seltsam, einem Benutzer fstabnur das Bearbeiten zu erlauben. Wenn Sie Benutzern das Mounten von Wechseldatenträgern erlauben möchten, verwenden Siepmount(oder verlassen Sie sich auf Desktop-Umgebungen).

Wenn Sie einem Benutzer erlauben, nicht auf der Whitelist stehende Befehle als Root auszuführen („alle anderen Verwaltungsaufgaben“), können Sie ihn nicht daran hindern, bestimmte Dateien zu bearbeiten. Irgendwann müssen Sie entscheiden, ob Sie diesen Leuten vertrauen oder nicht. Wenn Sie ihnen die Verwaltung Ihres Computers nicht zutrauen, erteilen Sie ihnen keine Berechtigungen (lassen Sie sie stattdessen einen anderen Computer verwenden, vielleicht eine virtuelle Maschine). Wenn Sie ihnen vertrauen, lassen Sie sie Root werden und sagen Sie ihnen, dass bestimmte Dateien tabu sind.

Antwort3

Wenn Sie versuchen, jedes einzelne Dienstprogramm aufzuzählen, das ein Administrator möglicherweise benötigt, werden Sie eine Weile an der Tastatur sitzen.

Technisch gesehen ist diese Art von Wunsch der Grund,Linux-Funktionenwurden entwickelt. Um das zu erreichen, was Sie möchten: Sie könnten den Benutzern bestimmte Fähigkeiten geben und dann einfach Benutzer1 Schreibzugriff gewähren fstab(über ACL oder so) und dem eingeschränkten Benutzer2 einfach nicht dasselbe Schreibrecht gewähren (und sicherstellen, dass Benutzer2 nicht über CAP_CHOWN oder CAP_DAC_OVERRIDE verfügt), aber angesichts des aktuellen Stands der Fähigkeiten (im Hinblick darauf, wie gut der Benutzerbereich entwickelt ist) ist das wahrscheinlich mehr Arbeit, als es wert ist.

Ohne die Verwendung von Fähigkeiten zur Übertragung von Verantwortlichkeiten in ein Szenario mit der Rolle „Root als Benutzer“ haben Sie nur verschiedene Möglichkeiten, das Root-Konto für verschiedene Aufgaben zu verwenden. Damit kommen wir zu dem bereits erwähnten Problem, dem System jedes einzelne mögliche Tool mitzuteilen, das der andere Benutzer benötigt (hoffentlich eines, das nicht indirekt zur Manipulation verwendet werden kann fstab).

Wahrscheinlich ist es besser, wenn Sie einfach entscheiden, ob Sie einem bestimmten Benutzer die Rolle des Administrators anvertrauen können oder nicht.

verwandte Informationen