Auf CLI arbeite ich im Standardsetup mit root, bei den größeren Kunden, mit vielen Admins, hat jeder seinen eigenen Account und muss die Updates dann als sudo
ausführen.
Letztlich genau so wie von
@Falk R. beschrieben. Häufiger aber ohne sudo und eigenen Benutzer, es lässt sich ja im /var/log/auth.log nachvollziehen, welcher Key sich wann eingeloggt hat [0]. Natürlich kann man noch sudoreplay verwenden, aber letztlich wenn jeder zu root werden kann, kann er diese potenziell auch entfernen. Das wiederum kann man nur mit einer externen Loggininstanz wie z. B. Graylog verhindern, aber auch nur, wenn das System wirklich Auditsicher ist. Aber auch hier wieder die Grenze, ja ich kann dann auch das Logging abschalten, was der Angreifer aber nicht mehr verhindern kann, der Zugriff wurde ja bereits protokolliert.
Für manche Dinge nutze ich aber auch Ansible, da wird logge ich mich dann auch in der Regel als root ein und habe agent forwarding aktiviert, damit ich auf die dahinterliegenden Systeme komme. Damit muss ich mir auch keine größeren Gedanken mehr um die Eingabe und Validierung der Befehle machen.
Letztlich also immer alles eine Frage, wie weit man es treiben muss oder will. Es gibt natürlich regulatorische Anforderungen, diese muss ich einhalten und umsetzen um Konform zu sein. Aber nicht alle sind oder wollen nach ISO 27001 oder BSI IT-Grundschutz zertifiziert werden.
Wie
@Falk R. ja auch ausgeführt hat, wenn man weiß was man tut, ist alles tutti. Es gibt so ein paar Basics an die man sich halten sollte wie z.B. nicht direkt Copy & Pasten, inbesondere wenn es von einer nicht vertrauenswürdigen Seite ist. Auch sollte man sich die Befehle vorher ansehen und wissen, was diese tun. Kein Agent Forwarding aktivieren, wenn man auf Systeme geht.
[0]
https://www.baeldung.com/linux/active-ssh-keys#3-evaluating-last-usage-information-from-logs