Frage zu Werk "Checkmk agent with systemd creates dedicated system user"

Hi,
ich habe eine Frage zu diesem Werk… in unserer Firma können wir nicht einfach selbstständig System-User anlegen, schon gar nicht, wenn der User selber die UID aussucht. Wenn jetzt eine Agenten-Installation dazu führt, dass automatisch ein User auf dem System angelegt wird, weiß ich jetzt schon, dass das zu Problemen führen wird.
Wird es bei diesem User möglich sein, eine UID und ein Home-Verzeichnis mitgeben zu können? (beim Backen der Agenten-Pakete?)
Oder wäre es in diesem Fall sinnvoll, den User vorab überall händisch mit gewünschter UID und Home-Verzeichnis anzulegen, würde das funktionieren?

Kann das jemand hier im Forum beantworten?

VG
Christian

Wenn ich das Werk richtig lese ist die Antwort fast auf alle deine Fragen ein “Nein”.
Aber wie du schreibst ist das direkt eine Frage an @LaMi :slight_smile:

Ja genau das hab ich befürchtet. Dann warte ich mal auf offizielles Feedback. :blush:

1 Like

Hi zusammen,

Kurzer Ausschweif zur unausweichlichen Frage: Warum der Zirkus? War doch bisher auch nicht nötig. :face_with_raised_eyebrow:

Mit der 2.1 werden wir den Linux-Agenten, vor allem den Transport der Agent-Daten, um einige Features erweitern. Im klassischen Pull-Transport-Modell kommt eine TLS-Encryption dazu und wir arbeiten an einem Push-Transport.

Um das vernünftig umzusetzen, haben wir uns eine neue Architektur ausgedacht, die den Transport-Kanal und die Ausführung des Agenten klarer trennt. So ist es für uns einfacher möglich die verschiedenen Varianten sauber umzusetzen.

Ein Bild sagt mehr als 1000 Worte, also hab ich mal kurz mein Whiteboard bemüht. Hoffe es macht den Plan ausreichend klar:

Ich hoffe, dass das den Schritt etwas klarer macht.

Und nun noch zum konkreten Thema:

Die Post-Scripte der Paketinstallation sollen das Anlegen des Users ausführen. Der User wird - nach aktuellem Stand - mit folgender Logik angelegt:

    # add cmk-agent system user
    echo "Creating/updating cmk-agent user account..."
    homedir="/var/lib/cmk-agent"
    comment="Checkmk agent system user"
    usershell="/bin/false"

    if id cmk-agent >/dev/null 2>&1; then
        # check that the existing user is as expected
        existing="$(getent passwd cmk-agent)"
        existing="${existing#cmk-agent:*:*:*:}"
        expected="${comment}:${homedir}:${usershell}"
        if [ "${existing}" != "${expected}" ]; then
            echo "cmk-agent user found:  expected '${expected}'" >&2
            echo "                      but found '${existing}'" >&2
            echo "Refusing to install with unexpected user properties." >&2
            exit 1
        fi
        unset existing expected
    else
        useradd \
            --comment "${comment}" \
            --system \
            --home-dir "${homedir}" \
            --no-create-home \
            --shell "${usershell}" \
            cmk-agent || exit 1
    fi

    unset homedir comment usershell

Im Werk steht noch ein anderes Homeverzeichnis - wird noch korrigiert (@moritz :pray:). Es ist auch durchaus möglich, dass sich an dem Mechanismus selber noch etwas ändert, aber so ist es jedenfalls aktuell gebaut.

Nach aktuellem Stand sollen Username, Comment, Shell und Homeverzeichnis fix sein. Die UIDs können wird natürlich nicht fixieren, da die Gegebenheiten auf den Systemen da draußen in der Welt sehr unterschiedlich sind. In lokalen Installationen wird das schon eher gehen.

Das klappt aber nur, wenn der User vor der Installation des Pakets angelegt wird, so wie es das Paket dann verlangt.

Viele Grüße
Lars

1 Like

sehr spannend - gefühlt haben die meisten Organisationen (leider) mehr Windows als Linux hosts, daher zwängt sich die Frage auf: wirds auch TLS für Windows geben?

2 Likes

Hm, vielleicht sollten solche Ideen vorher mit Kunden und Partnern besprochen werden.

Ich kann mir gut vorstellen, dass das nicht so gut ankommen wird.

Auch wenn jeder andere Dienst aus einem Distributionspaket (z.B. www-data für Apache) das auch so macht.

6 Likes

Wenn das Konzept trägt, dann wäre das auf jeden Fall der nächste logische Schritt. Zu welcher Version wir das dann schaffen, das müssen wir dann sehen. Eins nach dem anderen.

2 Likes

Dann haben wir ja schon ein interessantes Gesprächsthema für nächste Woche.

3 Likes

Hi @LaMi ,
was ist denn diese Woche?
Hab ich irgendeinen Termin übersehen?! :slight_smile:

Sorry, das war ein Insider. Wir haben morgen unseren Partnertag. Darauf hatte ich mich bezogen. Wollte aber der Diskussion hier damit auch nicht ausweichen.

Wir können uns hier also auch gerne weiter schriftlich austauschen.

Achso :slight_smile:
Mir ist nur wichtig, dass ich entweder den User selber vorher (mit eigenen UIDs) anlegen kann und das Agent-RPM erkennt und nutzt dann den vorher angelegten User, oder ich kann selber über z.B. Bakery Rules z.B. eine UID mitgeben und diese wird dann bei Installation des Agenten für den User verwendet. Muss man sich mal angucken, wenn das 2.1 Inno. Release raus kommt. Gibt es diesbezüglich eigentlich schon ein grobes Datum?

VG

2 Likes

Gut, nehme ich als Input mit, dass der Use-Case auf die eine oder andere Art funktioniert. Für uns einfacher wäre das Voranlegen zu erlauben - das geht mit dem jetzigen Ansatz schon.

Termine haben wir bisher noch nicht.

1 Like