Schützen Sie den Ordner vor Sudoern

7

Gibt es eine Möglichkeit, dass Sudoer Ihren Ordner nicht anzeigen können (nur Sie und root können auf den Ordner zugreifen)?

Arthur Halma
quelle
1
@depquid: Ist es? Ich bin mir nicht sicher, wie Ubuntu standardmäßig /etc/sudoersarbeitet, aber Sie können einfach nicht alle Benutzer zur Gruppe adminoder hinzufügen sudo.
Keith Thompson
Ja, mein Betriebssystem ist Ubuntu. Es gibt 2 Standardbenutzer (in der Sudoers-Gruppe) und 2 FTP (in ihren Home-Ordnern gesperrt).
Arthur Halma
@KeithThompson Als ich merkte, dass ich mich geirrt hatte, löschte ich meinen Kommentar. Aber dann wurde mir klar, dass es im Kontext des OP größtenteils richtig war. Zur Verdeutlichung verwendet Ubuntu standardmäßig kein Root-Passwort, sodass der Root-Zugriff über erfolgt sudo. Die Berechtigung zur Verwendung sudowird normalerweise erteilt, indem ein Benutzer Teil der Administratorgruppe wird. Und Mitglieder der Administratorgruppe erhalten vollen Root-Zugriff (dh sudo su -sind zulässig). "Sudoers" sind also im Sinne des OP Benutzer mit Root-Zugriff unter Ubuntu.
depquid
1
@ArthurHalma Vergessen Sie nicht, dass mit einer Standard-Umask von 022(oder weniger) Dateien weltweit lesbar erstellt werden. Stellen Sie sicher, dass Ihre Umask und / oder Berechtigungen richtig eingestellt sind, da sonst alle Benutzer Ihre Dateien lesen können.
depquid

Antworten:

10

Unter der Annahme , dass durch „sudoers“ Sie meinen Menschen , die erlaubt sind Befehle als root mit dem laufen sudoPräfix, weil sie in der genannten sudoersDatei durch eine Leitung wie bob ALL=(ALL) ALL, dann sind diese Leute sind Wurzel. Was definiert, dass man root ist, kennt nicht das Passwort des Root-Kontos, sondern hat Zugriff auf das Root-Konto mit welchen Mitteln auch immer.

Sie können Ihre Daten nicht vor root schützen. Per Definition kann der Root-Benutzer alles tun. Berechtigungen würden nicht helfen, da root die Berechtigungen ändern oder umgehen kann. Die Verschlüsselung würde nicht helfen, da root das Programm, das die Entschlüsselung durchführt, untergraben kann.

Wenn Sie jemandem nicht vertrauen, geben Sie ihm keinen Root-Zugriff auf einem Computer, auf dem Sie Ihre Daten speichern. Wenn Sie jemandem nicht vertrauen, der Root-Zugriff auf einem Computer hat, speichern Sie Ihre Daten nicht darauf.

Wenn ein Benutzer Root-Zugriff für einen bestimmten Zweck benötigt, z. B. für die komfortable Verwaltung einer Anwendung, die Installation von Paketen usw., geben Sie ihm seine eigene Hardware oder eine eigene virtuelle Maschine. Lassen Sie sie in der VM root sein, aber nicht auf dem Host.

Gilles 'SO - hör auf böse zu sein'
quelle
5

In der Regel wird der sudoZugriff auf folgende Weise gewährt:

# User privilege specification

root    ALL=(ALL) ALL
user1   ALL=(ALL) ALL

In diesem Szenario hat der Benutzer im Wesentlichen uneingeschränkten Zugriff, um root zu werden und zu tun, was er will. Sie können vorsichtiger sein, wie Sie Zugriff auf verschiedene Aufgaben in sudo gewähren, indem Sie stattdessen die folgenden Schritte ausführen:

user1  ALL=(root) /usr/bin/find, /bin/rm

Hier beschränken wir die Befehle, die Benutzer1 verwenden kann, auf nur findund rm. Wenn Sie wissen, dass ein Benutzer nur einen bestimmten Befehl benötigt, können Sie ihm ausschließlich Zugriff auf diesen Befehl gewähren.

Darüber hinaus können Sie Skripte erstellen, anstatt nur Befehle hinzuzufügen. Zum Beispiel:

user1  ALL=(root) /usr/local/bin/limited_script.sh

Dieses Skript wäre der einzige Befehl, auf den sie Zugriff haben würden, z. B. cd /to/some/dirim vorherigen Skript, und dann den Befehl umbrechen, auf den sie Zugriff haben müssen. Dies kann eine Möglichkeit sein, den Zugriff einzuschränken.

Stellen Sie fest, dass der Ansatz kein vollständiger Beweis ist, sondern Ihnen ein gewisses Maß an Schutz bietet.

slm
quelle
2
sudo /usr/bin/find . -maxdepth 0 -exec any-command-you-like \;
Keith Thompson
Danke, ja, dies ist keineswegs eine perfekte Lösung, da es bei der Sicherheit um Schichten geht. Aber in diesem Fall ist es eine sehr dünne Schicht.
slm
Schöne Lösung. Aber ich denke, @ Gilles Antwort ist wahr. Ich werde niemals sicher sein, wenn jemand anderes nur einige Root-Privilegien hat.
Arthur Halma
Wir haben im Wesentlichen dasselbe gesagt. Meine Antwort lieferte Ihnen eine Methode, mit der Sie einem Benutzer erlauben können, einen Befehl ohne Zugriff auf die Festplatte auszuführen, während dies nicht der Fall war. Ich glaube, das war es, wonach Ihre Frage gefragt hat? Außerdem spricht seine Antwort nur, bob ALL=(ALL) ALLwas der schlechteste Weg ist, um Sudo-Berechtigungen herauszufinden. Wie gesagt, es ist im Wesentlichen unmöglich, einen getriebenen Benutzer daran zu hindern, Befehle in sudo für schändliche Zwecke nicht zu kooptieren. Aber meine Antwort ist in der Tat repräsentativer dafür, wie Sie Sudo-Berechtigungen erteilen würden.
slm
4

Es sei denn , die Befehle ein sudoer in der eingeschränkt läuft sudoersconfig - Datei ( in der Regel /etc/sudoers), sudogibt root, so gibt es nichts , was man tun kann , eine sudoer zu verhindern , dass Ihr Verzeichnis zugreifen.

Flup
quelle
4

Wird normalerweise sudoverwendet, um von normalen Benutzern Root-Kräfte zu erlangen, zumindest von einem bestimmten Befehl. Wenn root es also lesen kann, kann es auch ein Benutzer verwenden sudo.

Ich denke, das Beste, was Sie tun konnten, war, den Ordner / die Dateien auf irgendeine Weise mit einem persönlichen Passwort zu verschlüsseln.

Baard Kopperud
quelle
2

Möglicherweise verwenden Sie ACLs, und wenn Sie die entsprechenden ACE-Einträge festlegen, können Sie dies möglicherweise tun. Es ist jedoch etwas mühsamer.

Wie kann Ihnen ein Administrator dabei helfen, ein Problem mit Ihren Dateien / Verzeichnissen zu beheben? Entweder vertrauen Sie Ihren vertrauenswürdigen Benutzern oder Sie vertrauen nicht auf ein anderes System, auf dem Sie Ihren Administratoren vertrauen.

mdpc
quelle