Sind Benutzerdateien noch privat, wenn zwei sudo-Benutzer in Ubuntu existieren?

31

Ich teile meinen persönlichen Ubuntu-PC mit einem meiner Kollegen.

Ich habe einen anderen Benutzer mit einem anderen Passwort erstellt (er weiß es natürlich) und es der sudoerListe hinzugefügt .

Vorausgesetzt, es gibt zwei sudoBenutzer in einem einzigen Ubuntu-System:

  • Sind die privaten Dateien (von Eigentümern und Berechtigungen festgelegt) eines dieser Benutzer noch privat?

  • Kann ich die Dateien meines Kollegen auch per sudoBefehl ändern sudo suoder umgekehrt?

Jizhou Huang
quelle
6
Mit Ubuntu können Sie einen privaten Ordner verschlüsseln, wenn Sie einen Benutzer erstellen. Das könnte genau das sein, was hier benötigt wird.
Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen Kann ich nach dem Verschlüsseln des Basisordners immer noch so bequem auf die darin enthaltenen Dateien zugreifen wie zuvor?
Jizhou Huang
3
Warum entfernen Sie nicht den sudo-Zugriff von dem anderen Benutzer und werden der einzige Administrator? Aus welchen Gründen auch immer der andere Benutzer sudo benötigt, Sie können dies beheben, damit er sudo nicht benötigt (Mounten, Drucken, automatische Updates usw.)
Xen2050

Antworten:

51

Wenn sich Ihr Kollege in der Liste der Sudoer befindet, ist er so viel root wie Sie, wie er möchte (und er kann sich auch als Sie ausgeben), und dann kann er alles sehen.

Dies ist das schlechteste Setup, das Sie haben können, wenn Sie die Privatsphäre der Benutzer möchten. Sie sollten unbedingt nachlesen, wie die Benutzerverwaltung unter Linux funktioniert. Hier sind ein paar Artikel, mit denen Sie beginnen können:

Und selbst dann, wenn jemand physischen Zugriff auf die fragliche Maschine hat, gibt es keine Privatsphäre, er könnte beim Booten in eine Root-Shell fallen und alles sehen, egal was, und wenn dies passwortgeschützt wäre, könnte er immer noch einen USB-Stick verwenden und geh auf diesem Weg hinein.

Das Beste in diesem Fall ist die ordnungsgemäße Benutzerverwaltung, das Kennwort für root und das verschlüsselte Laufwerk und / oder die verschlüsselten Basisverzeichnisse.

Videonauth
quelle
2
Aber stellen Sie sicher, dass sudo -ies nicht funktioniert :)
Wilf
3
Während die einfachste und gebräuchlichste Konfiguration von sudoers darin besteht, einer Liste von Benutzern vorübergehend Root-Rechte zu gewähren, ermöglicht sudoers eine differenzierte Zugriffssteuerung. Sie können beispielsweise festlegen, dass ein Benutzer nur bestimmte Befehle als root ausführen kann. Wenn Sie darauf achten, dass ein Benutzer nur Befehle ausführt, die das Erstellen einer Root-Shell oder das Erstellen eines dauerhaften Root-Zugriffs über den Bereich der Befehle, die Sie zulassen möchten, hinaus nicht zulassen, können Sie das Gewähren des Root-Zugriffs generell vermeiden.
BGVAUGHAN
19

Eine einfache Alternative besteht darin, Ihre privaten Daten in einer verschlüsselten Datei zu speichern (dies kann eine tar-Archivdatei sein, die Sie beispielsweise mit gpg verschlüsseln). Sie müssen daran denken, die Klartextdateien nach dem Anzeigen zu überschreiben und zu entfernen.

Eine andere Alternative für alle, die einen Computer und einen sudo (root) -Zugriff gemeinsam nutzen, ist die Verwendung von verschlüsseltem Home und verschlüsseltem Swap.

Dies hilft jedoch nicht, wenn Sie gleichzeitig angemeldet sind. Tatsächlich müssen Sie den Computer neu starten, um Ihre Dateien im Klartextformat auch bei verschlüsseltem Zuhause zu entfernen.


Im Allgemeinen ist die Sicherheit sehr schwierig, und ein Einzelbenutzersystem mit verschlüsselter Festplatte (LVM mit Verschlüsselung) ist der einfachste Weg, um die Sicherheit zu gewährleisten.

  • Speichern Sie keine vertraulichen privaten Daten auf einem gemeinsam genutzten Computer
  • Speichern Sie keine privaten Daten auf einem Computer, der Ihrem Arbeitgeber gehört
Sudodus
quelle
3
Ein dm-crypt / LUKS-Container muss sich nicht darum kümmern, Klartextdateien (mit Ausnahme der temporären Dateien und des Austauschs von Anwendungen) oder ein einzelnes verschlüsseltes ~ / .Private-Verzeichnis mitecryptfs-mount-private
Xen2050
6
Dies schützt Sie nicht einmal vor bösen Angriffen durch Dienstmädchen: Der andere sudo-Benutzer kann das System so ändern, dass Sie dazu verleitet werden, ihm Ihre Passphrase zu geben. Eine solche Frage sollte lauten: "Ich vermute, mein Kollege ist ein russischer Spion. Soll ich ihm Sudo-Rechte auf meinem Computer geben?"
Sleblanc
Was ist mit einer virtuellen Maschine mit verschlüsseltem Festplatten-Image? blogs.oracle.com/scoter/
leftaroundabout
1
Wenn Sie Privatsphäre benötigen, benötigen Sie ein Einzelbenutzersystem, dh keinen anderen Benutzer, definitiv keinen anderen sudo-Benutzer. Der Ubuntu LVM mit Verschlüsselungssystem ist anfällig für böse Angriffe durch Dienstmädchen. Trotzdem denke ich, es ist besser als die anderen einfachen Alternativen, einschließlich verschlüsseltes Zuhause. Natürlich können Sie, wenn Sie möchten, eine verschlüsselte Festplatte und ein verschlüsseltes Heim- und Einbenutzersystem verwenden, um einem Eindringling die Arbeit zu
Sudodus
Der neue Root-Benutzer muss lediglich ein Kernel-Space-Rootkit wie diamorphine installieren. Sie müssen sich nicht einmal mit Userland- LD_PRELOADHacks herumärgern : Erstellen Sie einfach einen einfachen Keystroke-Logger und werfen Sie ihn auf einige Python-Skripte, um eine Fuzzy-K-Mittel-Segmentierung basierend auf Zeit / Gruppierung der Typisierung und Textanalyse durchzuführen getan. Jetzt haben Sie die Passphrase für den Benutzer und können wahrscheinlich auf ihre persönlichen Daten zugreifen.
Cloud
8

Sobald Sie sind in der Lage zu bekommen rootBerechtigungen (zB mit sudo, suusw.).
Sie haben vollen Zugriff auf alle Dateien im System.

Also sowohl der Nutzer , die haben die sudoErlaubnis, und wurde rootmitsudo bash werden können, vollen Zugriff auf alle Dateien auf dem System

Nach diesen Fragen und Antworten in SE-Security: Sie können möglicherweise Änderungen vornehmen SELinux(was nicht Ubuntu ist), um den rootZugriff einzuschränken:

Wenn Ihre Frage lautet: "Kann ich das jetzt einfach und sicher tun?" Die Antwort ist nein. Wenn Ihre Antwort lautet: "Ich bin bereit, SELinux kennenzulernen, mich mit meiner Distribution zurechtzufinden und eine Menge Dinge in Kauf zu nehmen, die nicht funktionieren", ist es möglich, root viel mehr als die durchschnittliche Installation einzuschränken. Das bedeutet jedoch nicht, dass Sie für Exploits in irgendeiner Weise unangreifbar sind - es macht es einem Benutzer nicht unmöglich, diese zusätzliche Zugriffskontrolle entweder in der Software oder physisch zu umgehen.

Yaron
quelle
2
Sie können sowohl root mit Apparmor als auch selinux einschränken. Jemand mit vollem Root-Zugriff oder Zugriff über die Wiederherstellungsshell oder eine Live-CD kann dies jedoch durch ein System (Apparmor oder Selinux) wieder ändern.
Panther
1
Selbst wenn Sie SELinux oder ein anderes Programm verwenden, um die direkten Aktionen von Root einzuschränken, können diese möglicherweise die Dienstprogramme ändern, die die Benutzer selbst ausführen. Und wenn sie Upgrades ausführen können sollen, brauchen sie Zugriff, um die Binärdateien auf dem System zu ändern ...
ilkkachu
5

Um zu verdeutlichen, was die anderen Antworten bereits gesagt haben: Dieser andere Benutzer ist nicht nur "root so viel wie Sie" (Antwort von Videonauth), er kann auch Sie werden (wechseln Sie zu Ihrem Benutzerkonto) .

Dies liegt daran, dass mit Superuser-Berechtigungen zu jedem Konto gewechselt werden kann.

Sie wissen wahrscheinlich

sudo su

Dies ist eine Option zum Öffnen einer Root-Shell, wenn für root kein Kennwort festgelegt wurde (Sie können sich also nicht einfach direkt als root anmelden).

suist die Abkürzung für "switch user". Zu welchem ​​Benutzer wechselt es? Keine ist angegeben, oder? Aber aus der Manpage können wir Folgendes lernen:

Wird su ohne einen Benutzernamen aufgerufen, wird es standardmäßig zum Superuser.

Das ist also effektiv

sudo su root

Wenn Sie nicht rootin etwas anderes umbenannt haben.

Wenn Sie nur ausführen su <someuser>, werden Sie zur Eingabe eines Kennworts aufgefordert. Wenn Sie also ausführen su root, werden Sie zur Eingabe des root-Passworts aufgefordert (das standardmäßig in Ubuntu nicht vorhanden ist, sodass Sie sich nicht anmelden können) anders als das Passwort ist die leere Zeichenfolge)). Wenn Sie jedoch ausführen sudo su root, werden Sie aufgefordert, Ihr eigenes Kennwort einzugeben. Und Sie werden nur von dazu aufgefordert sudo. Sobald Sie sudoIhr Kennwort erhalten haben, wird der Befehl ausgeführt, den Sie als Parameter mit Superuser-Berechtigungen erhalten haben. Da man mit Superuser-Rechten zu jedem Konto wechseln kann, ist keine Passwortabfrage erforderlich.

Also durch Ausführen

sudo su <yourusername>

kann sich der andere Sudoer als Sie anmelden.

UTF-8
quelle
+1; Ja, ich habe dies nicht erwähnt, um keine Verwirrung zu stiften. Das Feld, in dem eine Maschine richtig geschützt werden muss, ist breit und mit Steinen gefüllt, über die man streiten kann. Immer noch eine gute Ergänzung zu dem, was bereits als Antwort gegeben wurde.
Videonauth
Nicht sicher, aber standardmäßig nicht sudo suimmer UID 0 und GUID 0? Wenn ja, sollte es keine Rolle spielen, wie Sie "root" genannt haben.
Videonauth
@Videonauth Sie haben Recht mit dem zweiten Satz in Ihrem zweiten Kommentar. Dies ist jedoch genau der Grund, warum ich den Satz aufgenommen habe, den Sie kritisieren. Wenn Sie umbenennen rootzu john, sudo suist jetzt gleich sudo su johnund nicht mehr zu sudo su root.
UTF-8
3

Durch Bearbeiten der sudoers-Datei ( /etc/sudoers) ist es möglich, die Programme zu beschränken, die unter Verwendung der sudo-Rechteeskalation ausgeführt werden können .

Weitere Informationen finden Sie in der akzeptierten Antwort auf diese Frage unter Super User und auch hier unter Unix und Linux . In der Antwort von slm finden Sie einen Vorschlag zur Einschränkung von Berechtigungen in /etc/sudoers.

Überprüfen Sie auch die sudoers- manSeite durch Eingabe man sudoersund vergessen Sie nicht, sie auszuprobieren . Denken Sie daran, dass ein Benutzer bei uneingeschränktem sudo-Zugriff die Identität eines anderen Benutzers annehmen kann. zB wenn der Benutzer fooden Befehl ausführen soll

sudo exec su - bar

Sie können dann als Benutzer barmit allen Berechtigungen dieses Benutzers agieren .

Charmeur
quelle
6
Beachten Sie, dass die spezifischen sudoersLinien in gezeigt SLMs und mtak die Antworten nicht funktionieren die Möglichkeit zu geben , bestimmte Aktionen auszuführen und andere nicht, wie es trivial einfach ist , sie zu verwenden , um auszuführen , jeden Befehl. (In den Kommentaren zu jeder dieser Antworten finden Sie ausführliche Erklärungen zum Grund.) Diese Antwort ist möglicherweise nicht unbedingt falsch, da es manchmal möglich ist, Benutzern die sudoAusführung bestimmter Befehle als root zu ermöglichen, ohne dass sie tatsächlich Administratoren werden. Aber es ist sehr schwer , das richtig zu machen.
Eliah Kagan
@EliahKagan Richtig. Es muss sorgfältig sichergestellt werden, dass sie keinen Mechanismus erreichen, mit dem sie Befehle ausführen können. Natürlich hängt es davon ab, wie viel Vertrauen Sie der anderen Person schenken.
1
@EliahKagan Daher die Aufforderung, die Manpage zu lesen und die Implementierung zu testen. Das Einschränken eines Benutzers mit sudo-Berechtigungen ist möglich. Wie Sie jedoch betonen, handelt es sich nicht um eine vollständig sichere Lösung, und die Benutzer, denen Sudo-Rechte erteilt wurden, müssen ein gewisses Maß an Vertrauen genießen. Es ist interessant, Abstimmungen für eine Antwort zu sehen, die die Verwendung des Mechanismus (sudoers-Dateieinträge) empfiehlt, der speziell für den Zweck entwickelt wurde, den Umfang des sudo-Befehls einzuschränken.
Charmeur
Ich denke, es geht nicht um die Empfehlung, einen eingebauten Mechanismus zu verwenden, also lassen Sie mich auf den Punkt kommen, welche konstruktive Kritik ich Ihnen für Ihre Antwort geben könnte. 1) Es enthält einige Tippfehler und ist schlecht formatiert und sieht merkwürdig aus, wenn Sie es lesen, was an sich sehr leicht behoben werden kann. 2) Sie verweisen auf andere Antworten, die außerhalb von Ask Ubuntu gegeben wurden. Hier sollten Sie die wesentlichen Teile als Block-Anführungszeichen verwenden und sie hier posten, wobei Ihre Links Teil der Anführungszeichen sind, um auf die Quellen zu verweisen, aus denen Sie diese entnommen haben. Hoffe, dies wird dazu beitragen, Ihre Antwort zu verbessern.
Videonauth 30.11.17
Und da mir in meinem vorherigen Kommentar die Zeichen ausgegangen sind: 3) Sie können die Erklärung etwas vertiefen, indem Sie auf die erwähnten Einschränkungen bei EliahKagan hinweisen.
Videonauth
0

Vorherige Antworten gelten nicht vollständig, wenn Sie encrypt home folderbei der Installation von Ubuntu markiert haben . Dies garantiert jedem Benutzer verschlüsselte Home-Ordner, auch wenn root die Daten nicht ohne das richtige Passwort des Benutzers / Besitzers dieses Home-Ordners lesen kann. Ihr Kollege müsste Ihr Passwort ändern, um die Dateien zu lesen, was bemerkt werden würde.

Und natürlich haben die Leute Recht, dass es keine gute Idee ist, Computer mit wertvollen oder sensiblen Daten und zusätzlich Root-Zugriff mit Kollegen zu teilen.

Abhängig vom Wert dieser Daten würde ich vorschlagen, nach Ihrer eigenen Maschine zu fragen.

s1mmel
quelle
1
Dies kann einen Root-Benutzer möglicherweise nicht davon abhalten, ein "su -" oder ähnliches Manöver auszuführen, sobald das "Opfer" angemeldet ist und das verschlüsselte Laufwerk aktiviert ist. Möglicherweise wartet auch ein Cron-Skript oder ein anderer Trigger darauf passieren. Außerdem kann ein Root-Benutzer die Binärdatei, die die Kennworteingabe verarbeitet, leicht ersetzen, um das verschlüsselte Ausgangsverzeichnis durch eine Version zu entsperren, in der das Klartextkennwort gespeichert ist, und warten. Jegliche Sicherheitsmechanismen, die solche Angriffe stoppen, können weiterhin genutzt werden, indem eine vom Opfer verwendete Binärdatei durch eine Aktion ersetzt wird, die Ihren Wünschen entspricht.
Rackandboneman
5
Ich stimme diese Antwort ab, da ein verschlüsseltes Home-Verzeichnis nur hilft, wenn Sie gerade nicht angemeldet sind. Sobald Sie sich anmelden, werden Ihre Daten entschlüsselt und stehen dem anderen Benutzer mit sudo-Zugriff zur Verfügung.
Panther
2
Aber warum sollten sie es sein müssen? Auch wenn gleichzeitige Anmeldungen niemals remote (z. B. über SSH) oder über virtuelle Konsolen erfolgen, können nicht zwei Benutzer gleichzeitig grafisch angemeldet und zwischen diesen umgeschaltet werden? Ich verwende Lubuntu (mit LXDE) und bin nie mit mehreren Benutzern gleichzeitig grafisch angemeldet. Mein Eindruck war jedoch, dass funktionsreichere Desktop-Umgebungen dies seit einigen Jahren unterstützen und standardmäßig aktivieren. Irre ich mich darüber? Sind die Dateien alternativ nicht mehr entschlüsselt und können von root gelesen werden, wenn der Bildschirm gesperrt ist?
Eliah Kagan
2
IRRC Die Benutzerverschlüsselungsschlüssel werden offen auf dem Computer gespeichert, um Ver- und Entschlüsselung zu ermöglichen. Wenn Sie also sudo su - <username>kein Kennwort für andere Benutzer benötigen, wird das Verzeichnis der anderen Benutzer normalerweise erfolgreich entschlüsselt. Aber ich könnte hier falsch liegen, muss es in einer VM testen und werde es später tun. Immerhin kommt es in 99% aller Fälle darauf an: "Wenn ich physischen Zugang zu Ihrer Maschine habe, sind Sie abgespritzt!".
Videonauth
1
Ein Superuser kann das Anmeldeverfahren ändern, um die angezeigten Benutzernamen und Kennwörter zu protokollieren. Warten Sie, bis sich der andere Benutzer angemeldet hat und das Problem behoben ist.
Stig Hemmer