Einige von uns in meinem Unternehmen haben Root-Zugriff auf Produktionsservern. Wir suchen nach einem guten Weg , es zu machen überaus deutlich , wenn wir in ssh'd haben.
Einige Ideen, die wir hatten, sind:
- Leuchtend rote Eingabeaufforderung
- Löse ein Rätsel, bevor du eine Muschel bekommst
- Geben Sie ein zufälliges Wort ein, bevor Sie eine Shell erhalten
Welche Techniken wenden Sie an, um Produktionssysteme zu unterscheiden?
Antworten:
Die rote Eingabeaufforderung ist eine gute Idee, die ich auch benutze.
Ein weiterer Trick besteht darin, eine große ASCII-Warnung in die
/etc/motd
Datei einzufügen.Wenn Sie so etwas bei der Anmeldung begrüßen, sollten Sie Ihre Aufmerksamkeit auf sich ziehen:
Sie können eine solche Warnung auf dieser Website erstellen oder den
figlet
Befehl verwenden.Wie Nicholas Smith in den Kommentaren vorgeschlagen hat, können Sie mit dem
cowsay
Befehl einige Drachen oder andere Tiere aufpeppen .Anstatt die Datei / etc / motd zu verwenden, können Sie auch
cowsay
oderfiglet
in der.profile
Datei aufrufen .quelle
Nicht ganz das Gleiche, aber auf dieser Website wird empfohlen, dass Ihre Entwickler einen rosa Sombrero tragen, wenn Sie Änderungen an Produktionssystemen vornehmen. Sie könnten wahrscheinlich eine ähnliche Regel haben, um in sie hineinzugehen.
quelle
Das größte, das ich verwendet habe, ist ein diskretes Benennungsschema, bei dem Produktsysteme offensichtlich anders benannt sind als Test- / Entwicklungsinstanzen. Dies macht die Eingabeaufforderung "Benutzername @ Hostname:" sichtbar anders. Und mit offensichtlich meine ich mehr als nur verschiedene Wörter, auch verschiedene Formate:
Beispiel: PRD-WEB001 vs DEVEL-BOB-WEB001
Das hat mehrere Gründe:
Und das Beste ist, dass für die Produktion keine speziellen Terminal-Konfigurationen erforderlich sind, um Hoppla-Fehler zu vermeiden.
Nach meiner Erfahrung möchten Sie etwas, das Sie ständig daran erinnert, wo Sie sich befinden. Login-Methoden wie Rätsel sind für ca. 10 Sekunden gültig, bis Sie vergessen, welches Fenster welches ist. Alles, was Sie tun müssen, ist,
ls
im falschen Verzeichnis das ominöse Login-Banner aus dem Blickfeld zu rollen, das Terminal-Fenster unter einem Browser-Fenster zu vergraben, während Sie etwas googeln, die Alt-Tab-Taste zum falschen Fenster zurückzukehren und Chaos zu verursachen. Am besten haben Sie einen konstanten visuellen Hinweis wie eine deutlich andere Eingabeaufforderung.quelle
Eine Sache, die Sie beachten müssen, ist, dass dies eine dauerhafte Erinnerung sein muss, nicht nur ein Indikator bei der Anmeldung. Sehr oft werden mehrere Muscheln gleichzeitig in verschiedenen Registerkarten ausgeführt und zwischen ihnen gewechselt. Einige werden Entwickler sein, andere produzieren. Wenn Sie also einen Befehl ausführen, müssen Sie an diesem Punkt einen Indikator haben. Eine spezielle Eingabeaufforderung ist meiner Erfahrung nach die beste Methode. Eine geänderte Titel- / Tab-Leiste ist eine gute Ergänzung, um das richtige Fenster / den richtigen Tab einfach zu finden.
Daher würde ich empfehlen, eine farbige Eingabeaufforderung (Rot ist die offensichtliche Wahl) und alle Großbuchstaben für den Hostnamen zu verwenden, mit ähnlichem Verhalten für den Benutzer (privilegiert oder nicht privilegiert) als Eingabeaufforderung. Einige Beispiele:
Normalerweise so etwas wie
in Ihrer Shell-Startdatei. Dieser ist für das Blau. Ersetzen Sie das
44
durch41
Tannenrot und42
durch Grün. Andere Farben und wilde Muster auch verfügbar .quelle
Das sind meine Vorschläge:
1) Stellen Sie sicher, dass die meisten Befehle (rm, chown, chmod, /etc/init.d/*) in der Produktionsumgebung sudo-Zugriff erfordern
2) Verwenden Sie PS1 / PS2, um anzuzeigen, dass sich der Benutzer in einem Prod-Server befindet
Dies zeigt die Eingabeaufforderung als
3) Wenn Sie Putty / SSH-Clients verwenden, können Sie immer eine eindeutige Hintergrundfarbe / ein eindeutiges Hintergrundprofil festlegen, um die Produktionsserver hervorzuheben.
quelle
Denken Sie nur daran, dass Ihre zweite und dritte Idee bei der erstmaligen Verbindung hilfreich sind, aber keinen Wert haben, wenn Sie mehrere Terminals geöffnet haben und von einem zum anderen wechseln. Die Idee von sysadmin1138, Namen zu verwenden, ist gut, wenn sie angewendet werden können, aber es gibt viele Fälle, in denen dies nicht möglich ist.
Das einzige, was ich als wirklich lohnenswert empfunden habe, ist eine farbige Eingabeaufforderung. Ich mag grün für Entwickler / Test, rot für Produktionszwecke und blau für Maschinen in der DMZ. Selbst wenn ich zwei Maschinen mit demselben Namen (in verschiedenen Netzwerken) habe, z. B. beim Vorbereiten einer Ersatzmaschine, kann ich auf diese Weise leicht feststellen, auf welcher ich mich befinde.
quelle
Die rote / spezielle Eingabeaufforderung ist gut. Eine andere Möglichkeit ist ein schnelleres automatisches Abmelden bei Computern, die die Variable TMOUT verwenden. Wenn Sie viele Fenster geöffnet haben, verschwinden die produktiven schneller.
Dies sollte zu einem anderen Verhalten führen:
quelle
Die Arbeit an einer Produktionsmaschine mit einem normalen Root-Account ist niemals eine gute Idee.
Besitzen Sie ein Konto mit vollständigen Sudo-Berechtigungen. Ermöglicht nicht das Speichern einer Sudo-Sitzung. Verbieten Sie sudo su. Verwenden Sie ein separates Passwort dafür (nicht eines, das Sie für Ihren Entwicklungscomputer haben). Möglicherweise müssen Sie sudo optimieren, um die Produktionsidentität der Shell zu ermitteln, bevor Sie den Befehl ausführen (über Alias).
Es wird versehentliche Fehler ziemlich schwer machen. Und rote Eingabeaufforderung tut nie weh.
quelle
sudo bash
). Sie können eine Root-Shell von jedem 'Blacklist'-Setup erhalten. (Wenn Sie vorsichtig sind, können Sie es mit einem Whitelist-Setup stoppen, aber es ist in der Regel nicht garantiert.)Ich habe mich für die Idee der roten Eingabeaufforderung entschieden und fand es ziemlich mühsam, Arbeitscode für zu finden
.bashrc
.Hier ist also meine Version, die zum Einfügen bereit ist
.bashrc
- https://github.com/RichVel/nicer-bash-prompt . Es ist völlig von den Hostnamen angetrieben, so lange , wie Sie ein geeignetes Muster zur Produktion Host - Namen haben (sagen wirxyprod01
,xyprod02
etc) , es wird gut funktionieren, und Sie können das gleiche verwenden.bashrc
in allen Umgebungen.Es sieht aus wie das:
Dadurch wird eine schönere Bash-Eingabeaufforderung erstellt, einschließlich einer roten Eingabeaufforderung auf Produktionshosts. Außerdem werden der aktuelle Git-Zweig und die letzten beiden Verzeichnisse in $ PWD angezeigt. Es wird darauf geachtet, dass die Anzeige der Eingabeaufforderung nicht durcheinander gebracht wird, wenn Strg / R (Rückwärtssuche) in der Bash ausgeführt wird.
Enthält außerdem eine optionale Funktion zum Synchronisieren des Bash-Verlaufs in allen Terminalfenstern gemäß dieser Antwort . Das ist nett, aber nicht jeder will es, also ist es standardmäßig deaktiviert.
quelle
Ich weiß zwar nicht, wie Ihre IT-Einrichtung aussieht, aber eine möglicherweise wirksame Lösung wäre, über einen speziellen Raum zu verfügen, in dem Sie als Root zu SSH auf Produktionsservern wechseln müssen. Wenn Sie über ein Rechenzentrum verfügen, kann dies der Serverraum selbst sein. Wenn Sie jedoch einen separaten physischen Standort haben, von dem aus „normale“ Arbeiten nicht ausgeführt werden, wird dies effektiv daran erinnert, dass Sie auf Produktionsmaschinen zugreifen.
quelle
Nur eine Feinabstimmung der obigen Vorschläge. Ich verwende CDE als meinen Unix-Desktop und alle Produktionssysteme, auf die ich über ein Menü in .dt / dtwmrc zugreife. Auf allen Dev- und UAT-Systemen behalte ich mein normales Farbschema bei, aber auf Prod-Systemen habe ich das Terminal so eingestellt, dass es einen roten Hintergrund hat. Ich mag den Look nicht, aber das ist der springende Punkt.
eta - verpasste Karols Vorschlag, im Grunde dasselbe zu tun
quelle
Wenn ich mich bei einer Produktionsmaschine anmelde, erhalte ich einen Absatz mit der Warnung, dass es sich um eine Produktionsmaschine handelt, sowie eine kurze Liste mit Richtlinien. Es gibt eine Nummer, die ich für den UNIX-Support anrufen kann, wenn ich glaube, dass ich meine Aufgabe nicht sicher alleine erledigen kann, eine Erinnerung, dass das Sprengen einer Produktionsmaschine meinen Job kosten kann, und eine Erinnerung, dass alles, was ich tue, protokolliert ist.
Bearbeiten: Ich arbeite in der Transportbranche.
quelle
In PuTTY können Sie den Titel des Fensters in einen anderen als den Standardtitel für eine bestimmte gespeicherte Sitzung ändern. Dies bleibt immer im Fenster, egal was Sie im Fenster tun. Dies wird auch in der Taskleiste angezeigt.
Erweitern Sie Fenster, klicken Sie auf Verhalten. Geben Sie in den Fenstertitel Folgendes ein:
quelle
Einfache Antwort? Ändere die Farbe deiner Shell in der Shell-Konfiguration auf Rot. Es wird absolut offensichtlich und einfach einzurichten sein. Nicht nur das, sondern im Gegensatz zu Server-Headern wird es nicht ausgeblendet, nachdem Sie einige Befehle eingegeben haben.
quelle
Hier ist, was ich auf meinem Mac gemacht habe. Für jeden Server füge ich einen Eintrag in meine ~ / .ssh / config-Datei ein, z
Dieses Applescript wird ausgelöst, sobald die SSH-Sitzung eingerichtet ist. Hiermit wird die Hintergrundfarbe des Terminals auf die angegebenen RGB-Werte gesetzt (oder auf die Standardfarbe zurückgesetzt, wenn keine Farbwerte angegeben sind). Der möglicherweise knifflige Teil besteht darin, das Ende der SSH-Sitzung abzufangen, um die Farben auf die Standardeinstellungen zurückzusetzen. Dafür habe ich das folgende Shell-Skript als ~ / bin / ssh erstellt, um den Standard-Befehl ssh zu überschreiben. Dadurch werden im Wesentlichen alle Aufrufe des SSH-Befehls abgefangen und umbrochen. Ich habe versucht, Aliasing und Funktionen zu verwenden, aber diese Lösung hat am besten funktioniert:
Hier ist die Quelle für das Skript change_terminal_colours.scpt . Fügen Sie dies auch in Ihr ~ / bin-Verzeichnis ein:
Ich habe diese Lösung vor einer Woche geschrieben und benutze sie seitdem. Ich hoffe, andere finden es von Wert. Ich finde, es funktioniert besser als alle Lösungen, die ich von Googling gefunden habe.
quelle
Meine Gruppe verwendet visionapp Remote Desktop (2017 bearbeiten: sieht aus wie das Produkt umbenannt wurde, aber ich denke, es ist das gleiche), um sowohl RDP in Windows-Maschinen als auch SSH in Linux. Unsere Verbindungen sind nach Ebenen in Ordnern gruppiert und mit einer Registerkartenfarbe versehen.
Also, wann immer wir eine Produktionsverbindung eröffnen - bam! - wir bekommen ein knallrotes Gesicht:
Es ist definitiv eine lohnende Investition, wenn Sie ein großer Windows-Shop sind und sich viel auf RDP verlassen. Ich wette, es gibt andere großartige Tools, wenn Sie nur SSH benötigen.
quelle
Abgesehen von einer eindeutigen Eingabeaufforderung (die die zuverlässigste Lösung zu sein scheint), können Sie bei der Anmeldung von derselben Workstation aus verschiedene Profile für Ihre SSH-Sitzungen verwenden.
Zum Beispiel habe ich einen roten Hintergrund für Produktionssysteme, einen grünen für die Entwicklung, einen blauen für die Infrastruktur (Router usw.) und einen weißen für die lokale Workstation.
Wenn Sie GNOME verwenden, können Sie auf einfache Weise eine SSH-Verbindung mit Ihrem gewünschten Profil herstellen:
gnome-terminal --window-with-profile=production -e 'ssh [email protected]'
Der Hauptnachteil - es ist clientseitig, so dass eine spezielle Eingabeaufforderung immer noch die beste Wahl ist, wenn Sie von verschiedenen Standorten aus auf Server zugreifen.
quelle
Eine weitere Möglichkeit, um zu verdeutlichen, dass Sie sich in einem Produktionssystem befinden, besteht darin, die TMOUT-Funktion (Autologout) im Produktionssystem festzulegen.
quelle
Aufgrund der enormen regulatorischen Anforderungen bei der Arbeit in einer bestimmten Branche werden hier alle Aktivitäten für zukünftige Streitigkeiten protokolliert. Aus diesem Grund ist der Zugriff ebenfalls eingeschränkt, und Sie müssen einige "Menüs" durchgehen, mit denen Sie als einer der wenigen vertrauenswürdigen Benutzer auf einen Computer zugreifen können. Beim Einrichten dieses Systems muss die Person die PRODUKTIONS- oder QS-Umgebung und anschließend den Host, auf den sie zugreifen möchte, aus der Liste auswählen. Dies hat auch eine Zeitüberschreitung, sodass Sie nicht in die Situation geraten, sich bei einem Produkt-Host anzumelden und zu vergessen, in welcher Umgebung Sie sich am nächsten Tag befinden.
quelle
Ich benutze die Eingabeaufforderung Änderungen wie andere hier. Es ist schnell und böse, funktioniert aber gut für meine Zwecke. Auf einem Produktionssystem werden Sie als normaler Benutzer rot und auf einem Produktsystem als Root in Großbuchstaben angezeigt.
Es könnte in weniger Zeilen geschrieben werden, aber ich mache es so, damit ich die anderen 2 Fälle (nicht root-non-prod) optimieren kann, wenn ich will.
Wir gehen davon aus, dass ein Produktionsserver kein DHCP verwendet. Sie können jedoch auch eine andere Methode verwenden, um zu ermitteln, ob es sich um ein Prod-System handelt. Was auch immer für dich funktioniert.
quelle
Verfügen Sie auf den Produktionsmaschinen über ein anderes (möglicherweise längeres) Root-Passwort.
Sie können ein spezielles Sudo (oder einen Sudo-Wrapper) erstellen, sodass eine spezielle Meldung für die Produktionsmaschinen ausgegeben wird.
quelle
Hier haben wir Standard-Kittkonfigurationen, um die Vordergrundfarbe des gesamten Bildschirms hellrosa zu machen.
Es funktioniert ziemlich gut, aber ich mag einige der anderen Ideen hier.
quelle
im .bashrc / .bash_profile
quelle