GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Soll der einzige Benutzer eines *nix-Systems zwei Konten haben?

Sehr aktualisiert nach 69 Upvotes, siehe Antwortverlauf für ursprüngliche Antwort. Danke an @JimmyJames für die Diskussion.

Lassen Sie uns zunächst über das Bedrohungsmodell sprechen:Wovon wollen Sie den potenziellen Angreifer abhalten?

Bedrohungsmodell:Identitätsdiebstahl / Ransomware auf einem Einzelbenutzersystem

Im Allgemeinen für Endbenutzersysteme die de facto Bedrohungsmodell ist Identitätsdiebstahl / Ransomware. Wenn der Angreifer Zugriff auf Ihre Dokumente hat und/oder Shell-Befehle wie Sie ausführen kann, ist das Spiel vorbei. Aus dieser Perspektive bringt der Root-Zugriff dem Angreifer nichts; sie können bekommen, was sie wollen, ohne es.

Wenn Identitätsdiebstahl/Malware das Einzige ist, worüber Sie sich Sorgen machen, scheint es nicht so wichtig zu sein, ob Ihr Benutzer sudo hat Befugnisse, oder überhaupt, ob der Browser als root ausgeführt wird.

(Ich sollte auch darauf hinweisen, dass Malware / das Verbinden mit einem Botnet ohne Root-Zugriff erfolgen kann, da für Anmeldeskripts / das Planen eines Cron-Jobs kein Root erforderlich ist).

Randall Munroe von XKCD scheint dieser Ansicht zuzustimmen:

Abschließend füge ich diesen Haftungsausschluss hinzu:Ja, mir ist bewusst, dass dies der allgemeinen öffentlichen Meinung widerspricht, dass „mehr Sicherheit immer besser ist“. Es ist einfach nicht wahr. Manchmal ist mehr Sicherheit schlechter, wie zum Beispiel übermäßig komplexe Passwortrichtlinien, die die Leute dazu zwingen, ihre Passwörter aufzuschreiben. Man muss sich immer die Risiken anschauen und entscheiden, wie viel Sicherheit tatsächlich angemessen ist. In diesem Fall schadet es nicht, den Root-Zugriff zu sperren, aber Sie machen Ihr Leben komplizierter, und es ist nicht klar, ob Sie etwas davon haben.

Bedrohungsmodell:Root-Zugriff oder Mehrbenutzersystem

Wenn Sie ein Bedrohungsmodell haben, bei dem der Angreifer etwas will, auf das nur Root Zugriff hat, oder wenn mehr als ein Benutzerkonto auf dem Computer vorhanden ist, hängt die Antwort tatsächlich davon ab, von welcher * nix Sie sprechen. Dies führt schnell weg von PC-Gehäusen und hin zu Server-Gehäusen, aber ich werde es trotzdem besprechen. Für Linux sollte Ihr alltägliches Konto aufgrund eines Fehlers (*ahem-Funktion*) im Xorg-Windowing-System wahrscheinlich nicht sudo haben Kräfte. Für Betriebssysteme, die kein X verwenden, ist es wahrscheinlich in Ordnung.

Linux (mit X.org-Fenstersystem)

Hier ist ein großartiger Artikel, der Ihnen zeigt, wie Sie alle Tastenanschläge auf einem GUI-Linux-Rechner mit einem einfachen Benutzerland-Shell-Befehl (nicht als Root) protokollieren. Zusammengefasst:

$ xinput list zeigt Ihnen alle angeschlossenen menschlichen Eingabegeräte

$ xinput test <id> beginnt mit der Wiedergabe aller Tastenanschläge auf dem ausgewählten Gerät.

Ich habe es getestet und bekomme Protokolle des Passworts, das ich in sudo eingebe in einem anderen Terminalfenster. Wenn ich meinen Computer sperre und mich dann wieder anmelde, sehe ich Protokolle des Passworts, das ich auf dem Sperrbildschirm eingegeben habe. Anscheinend ist dies kein Fehler in X, sondern ein Feature. Gut, ich werde mich jetzt unter meinem Bett verstecken.

Also ja, dies unterstützt die Idee, dass jeder Benutzer, mit dem Sie sich in der GUI anmelden, nicht sudo haben sollte Befugnisse, weil es trivial ist, sein Passwort zu protokollieren und dann root zu werden. Ich nehme an, Sie sollten ein dediziertes Konto für sudo haben und wechseln Sie zu einem TTY-Endgerät (ctrl+alt+# ), wenn Sie sudo verwenden möchten . Ob es sich lohnt, sich darüber Gedanken zu machen, liegt an Ihnen:Persönlich sind alle Daten, die mir wichtig sind, bereits in meinem Benutzerkonto vorhanden, aber ich werde wahrscheinlich mein Laptop-Setup ändern, weil ich ein Sicherheits-Nerd bin.

Beachten Sie, dass ich in meinen Tests kein benutzerübergreifendes Keylog durchführen konnte. "Konto wechseln" in der GUI oder startx in einem neuen tty-Terminal scheint eine isolierte Instanz von X gestartet zu werden.

Danke an @MichaelKjörling für diese Beobachtung:

Das ist eines der Dinge, die Wayland [Fenstersystem, das X ersetzen soll] tatsächlich zu beheben versucht (siehe den Aufzählungspunkt zur Sicherheit). Denken Sie daran, dass X11 zu einer Zeit entstand, als sich das Bedrohungsmodell stark von dem von heute unterschied.

Für Systemadministratoren :Dies verstärkt die Angewohnheit, nur über ssh mit Ihren Linux-Boxen zu interagieren und niemals die GUI zu verwenden.

Mac OSX

Ich bin kein OSX-Experte, aber ich weiß, dass es den Xorg-Server nicht verwendet, also würde ich davon ausgehen, dass Apples GUI dies richtig handhabt, aber ich würde mich freuen, wenn sich jemand mit mehr Experten als mir einmischt.

Windows

Ich bin auch kein Windows-Experte, aber ich glaube, dass die in Windows 7 eingeführte Benutzerkontensteuerungsfunktion (UAC) dieses Problem behoben hat, indem Administratoraufforderungen auf einem sicheren Desktop gerendert wurden, dessen Eingabebusse von Ihrem normalen Desktop isoliert sind.


In den meisten Situationen reicht die Anforderung eines Passworts mit sudo als ausreichender Schutz aus.

Der Hauptunterschied zwischen su mit einem anderen Konto und sudo Um Privilegien zu erlangen, müssen Sie bei sudo dasselbe Passwort eingeben, mit dem Sie sich angemeldet haben. Wenn Ihr Bedrohungsmodell davon ausgeht, dass ein Angreifer Ihr Kontopasswort hat, dann haben Sie bereits ziemlich große Probleme, mehr als ein anderes Passwort für das Root-Konto schützt Sie vor.


Ich habe festgestellt, dass es aus folgendem Grund unerlässlich ist, zwei Konten auf meinen Unix-Systemen zu haben:

Wenn ich jemals meine .bashrc- oder andere Anmelde-/Terminal-Setup-Dateien durcheinander bringe, kann ich in eine Situation geraten, in der ich mich nicht einmal einloggen kann. Also bin ich total genervt. Dies ist die schlimmste Situation, die man sich vorstellen kann, da Sie nicht viel tun können, wenn Sie sich nicht anmelden können.

Die einzige Möglichkeit, dies auf einigen Computern zu beheben, war die andere Anmeldung, die es mir ermöglicht, hineinzugehen und mit sudo die Startdateien für mein primäres Konto zu reparieren. Ich melde mich dann von meinem Konto „2“ ab und wieder bei meinem regulären Konto an.

Manchmal vielleicht in der Lage sein, die Boot-from-USB-Option zu verwenden, aber um ehrlich zu sein, finde ich, dass ich mich bei einem anderen Konto anmelden, sudo verwenden und meine .bashrc-Datei reparieren, mich dann abmelden und wieder bei dem anderen Konto anmelden kann, alles in wenigen Sekunden mit der zweiten Anmeldung und viel weniger beängstigend / ungewohnt als die USB-Boot-to-Fix-Option für mich. Natürlich YMMV (Your Mileage May Very)


Linux
  1. Wie finden Sie den ursprünglichen Benutzer durch mehrere sudo- und su-Befehle?

  2. Wenn ich CPAN in Linux Ubuntu verwende, sollte ich es mit sudo / als root oder als meinen Standardbenutzer ausführen

  3. Was ist der Unterschied zwischen root und sudo?

  4. Hat das Root-Konto immer UID/GID 0?

  5. Warum heißt der mächtigste Benutzer auf einem Unix/Linux-System „root“?

Timekpr – Kontrollieren Sie die Computernutzung von Benutzerkonten

Die Auswirkungen des Hinzufügens von Benutzern zu einem Linux-System

Gewähren Sie sudo Zugriff in Debian und dem Ubuntu-Betriebssystem

Terminal immer als Root-Benutzer (sudo) in Ubuntu starten

Wo werden sudo-Vorfälle gemeldet?

Warum unterscheidet sich das „sudo“-Passwort vom „su root“-Passwort?