Welche Vorteile bietet es, einen Benutzer in die Gruppe „Docker“ aufzunehmen, anstatt ihm „Sudo“-Zugriff auf den Host zu gewähren?

Welche Vorteile bietet es, einen Benutzer in die Gruppe „Docker“ aufzunehmen, anstatt ihm „Sudo“-Zugriff auf den Host zu gewähren?

Gibt es einen echten Vorteil, wenn man einen Benutzer in die dockerGruppe aufnimmt, anstatt ihm sudoZugriff auf den Host zu gewähren?


Der Vollständigkeit halber möchte ich sagen, dass ich ein Tutorial schreibe, das zeigt, wie Mitglieder der dockerGruppe direkt (also ohne zu verwenden sudo) über einen Unix-Domain-Socket, auf dem der dockerdServer lauscht, mit dem Docker-Server interagieren können.

Wenn man jedoch einem nicht privilegierten Benutzer die Möglichkeit gibt, beliebige Container zu erstellen, erhält dieser anscheinendWirksamRoot-Zugriff auf den Host: So wird es beispielsweise ganz einfach, das Host-FS durch Bind-Mounts zu ändern. Oder über procfs/ mit dem Kernel zu interagieren sysfs. Welchen Sinn hat es also, jemanden in die dockerGruppe aufzunehmen, anstatt diesem Benutzer Root-Zugriff auf das System zu gewähren?

Antwort1

Oder der Benutzer könnte einfachLaden Sie einen schönen, praktischen Docker-Container, der sie direkt in eine Root-Shell wirft.

Das Gewähren des Zugriffs auf den Docker-Socket garantiert tatsächlich praktisch die Möglichkeit zur Rechteausweitung.

Hier kommt es darauf an, Ihre Absichten zu erklären. Sie fügen jemanden in die dockerGruppe ein, damit er Container ausführen kann, ohne sudojedes Mal jeden Befehl ausführen zu müssen. Sie fügen jemanden hinzu, sudoerswenn Sie möchten, dass er jeden Befehl als Root ausführen kann sudo.

Wenn Sie nicht beliebigen Personen Zugriff auf den Docker-Socket gewähren möchten, sollten Sie mit ziemlicher Sicherheit ein Orchestrierungssystem wie OpenShift oder Kubernetes verwenden.

verwandte Informationen