Hm .. Ich habe viele schlechte Dinge als Wurzel getan. Ich habe einmal ein Skript geschrieben, das (unter anderem) ein Verzeichnis namens regelmäßig bereinigen sollte /foo
. Das Skript wurde also als root ausgeführt und hat ungefähr Folgendes ausgeführt:
cd /foo
rm -rf *
Eines Tages existierte das /foo
Verzeichnis aufgrund einiger Probleme mit unserem SAN nicht. Ergebnis: Katastrophe.
Dies ist natürlich nur ein schlecht geschriebenes Skript. Es hätte sein sollen:
cd /foo && rm -rf *
Aber es zeigt Ihnen, wie einfach es ist, etwas ernsthaft Schlechtes zu tun, wenn Sie zu viele Privilegien haben.
Das andere Problem, das Sie haben, wenn sich jeder als Root anmeldet, ist, dass Sie die gesamte Sache mit der Rückverfolgbarkeit / Überprüfbarkeit verlieren. Wer weiß, wer was getan hat? Ist das wirklich akzeptabel?
Die Frage, die Sie sich (und Ihrem Arbeitgeber) stellen müssen, lautet: Was müssen Sie tun, damit Sie verwurzelt sind?
In diesem speziellen Thema bevorzuge ich Solaris gegenüber Linux. (Bitte nicht flammen, ich spreche nur über das Thema des Root-Benutzers). Auch wenn Sie nicht mit Solaris arbeiten, gibt es meines Erachtens einige Erkenntnisse darüber, wie Solaris dies tut. Möglicherweise können Sie einige davon unter Linux nachahmen.
In Solaris (spätere Versionen) können Sie sich standardmäßig überhaupt nicht als Root von außen anmelden. In der Tat ist root eher eine Rolle als ein normaler Benutzer geworden. Wenn Sie über die erforderlichen Berechtigungen verfügen und das Root-Passwort kennen, können Sie sich natürlich bei root anmelden, jedoch erst, nachdem Sie sich zuerst als Sie selbst beim Host und dann bei root angemeldet haben. Auf diese Weise können Sie immer sehen, wer das Root-Konto verwendet hat.
Darüber hinaus haben Sie das gesamte feinkörnige Privileg-Setup unter Solaris eingerichtet. Sie können beispielsweise die Berechtigung zum Binden an einen Socket <1024 an einen bestimmten Dienst zuweisen. Unter Linux ein solcher Prozess muss von root gestartet werden. Zweitens haben Sie RBAC und die Delegierung von SMF-Berechtigungen (das Recht, einen bestimmten Dienst zu starten, zu stoppen oder zu verwalten). Damit muss selten etwas wirklich als root gemacht werden.
Solaris hält Sie aufgrund der sofort einsatzbereiten Konfiguration sowie der darin enthaltenen Funktionen von der Verwendung von root ab und macht es einfach, kein Root-Konto zu verwenden. Ich hoffe, eines Tages die gleichen Fortschritte in Linux zu sehen.
Das Gegenargument Ihres Chefs zu all dem ist, dass die Definition und Konfiguration einige Zeit in Anspruch nehmen wird. Dies ist wahr, aber Ihre Website scheint ziemlich groß. Das Schlüsselwort ist also Standardisierung . Definieren Sie diese Rollen ein für alle Mal, indem Sie die Funktionen Ihres Betriebssystems nutzen. Dann standardisieren Sie auf allen Ihren Servern. Das andere Schlüsselwort, das ich an den Tisch bringen möchte, ist das Prinzip der geringsten Privilegien . Sie sollten niemals mehr Privilegien haben, als Ihr Job erfordert. Leider sind Sie der Gnade des Privilegierungs- und Delegierungsmodells Ihres Betriebssystems ausgeliefert, aber lesen Sie es durch, und Sie werden wahrscheinlich feststellen, dass Ihr Betriebssystem in den letzten 10 bis 15 Jahren in diesem Bereich große Fortschritte erzielt hat, sodass es möglicherweise keine mehr gibt Müssen Sie sich als root anmelden?
Apache httpd sollte nicht als root ausgeführt werden. Zeitraum! Wenn Ihr Webserver gehackt wird, hat der Eindringling plötzlich Root-Rechte. Ihr Betriebssystem kann Sie zwingen, es als root zu starten, aber Apache httpd verfügt über eine Funktion, mit der Sie sofort zu einem anderen Benutzer wechseln können. Suchen User
und Group
Einstellungen in der Konfigurationsdatei für Apache httpd.