Wenn ich ein Programm wie GIMP oder LibreOffice unter Linux installiere, werde ich nie nach Berechtigungen gefragt. Wenn ich ein Programm auf Ubuntu installiere, erteile ich diesem Programm dann explizit die volle Berechtigung zum Lesen / Schreiben auf meinem Laufwerk und zum vollständigen Zugriff auf das Internet?
Konnte GIMP theoretisch jedes Verzeichnis auf meinem Laufwerk lesen oder löschen, ohne ein Passwort vom Typ sudo zu benötigen?
Ich bin nur neugierig, ob es technisch möglich ist, nicht, ob es wahrscheinlich ist oder nicht. Natürlich weiß ich, dass es nicht wahrscheinlich ist.
permissions
security
software-installation
Stackinator
quelle
quelle
Antworten:
Hier gibt es zwei Dinge:
Wenn Sie ein Programm standardmäßig installieren (Systeminstallationsprogramm wie apt / apt-get unter Ubuntu), wird es normalerweise in einem Verzeichnis installiert, in dem es allen Benutzern zur Verfügung steht (/ usr / bin ...). In dieses Verzeichnis müssen Berechtigungen geschrieben werden, sodass Sie während der Installation spezielle Berechtigungen benötigen.
Wenn Sie das Programm verwenden, wird es mit Ihrer Benutzer-ID ausgeführt und kann nur dort lesen oder schreiben, wo Programme, die mit Ihrer ID ausgeführt werden, lesen oder schreiben dürfen. Im Fall von Gimp werden Sie zum Beispiel feststellen, dass Sie Standardressourcen wie Pinsel nicht bearbeiten können, weil sie sich in der Freigabe befinden
/usr/share/gimp/
und Sie sie zuerst kopieren müssen. Dies zeigt auch,Edit>Preferences>Folders
wo die meisten Ordner paarweise vorhanden sind, wobei ein System schreibgeschützt ist und ein Benutzer schreibgeschützt ist.quelle
rm -rf ~/
. Wenn Sie von anderen Quellen installieren, müssen Sie vorsichtig sein (oder nach einer Codeüberprüfung von der Quelle installieren).Ja, wenn Sie
sudo
oder ein gleichwertiges Produkt verwenden, erteilen Sie dem Installationsprogramm die volle Berechtigung zum Lesen / Schreiben an einer beliebigen Stelle auf Ihrem Laufwerk. Das ist meistens dasselbe. Es gibt auch ein Flag namens setuid, das der Installer setzen kann, wodurch das Programm auch nach der Installation über die vollen Berechtigungen verfügt.Selbst wenn wir das Installationsprogramm ignorieren und das Programm nicht setuid ist (es kommt sehr selten vor, dass Programme setuid verwenden), hat es beim Ausführen des Programms uneingeschränkten Zugriff auf alles, worauf Ihr Konto zugreifen kann. Wenn Sie beispielsweise bei Ihrem Online-Banking angemeldet sind, kann dies möglicherweise dazu führen, dass alle Ihre Gelder nach Nigeria gesendet werden.
Das Sicherheitsmodell - das heißt, wie das Sicherheitssystem aufgebaut ist - unter Linux ist sehr alt. Es wurde von Unix geerbt, das bis in die 1960er Jahre zurückreicht. Damals gab es kein Internet, und die meisten Mitarbeiter einer Abteilung verwendeten denselben Computer. Die meisten Ihrer Programme stammten von großen Unternehmen, denen vertraut wurde. Daher wurde das Sicherheitssystem so konzipiert, dass Benutzer voneinander und nicht von den Programmen, die sie ausführen, geschützt werden.
Heutzutage ist es ziemlich veraltet. Android basiert auf Linux, erstellt jedoch ein separates "Benutzerkonto" für jede App und nicht für jeden Benutzer. Ich weiß nicht, was iOS verwendet. Bemühungen wie Flatpak versuchen derzeit, dasselbe auf den Linux-Desktop zu bringen.
quelle
Was Sie möchten, wird von Flatpack-Apps bereitgestellt. Dies entspricht in etwa iOS-, Android- oder Windows Store-Apps.
Ich habe sie nicht verwendet, daher weiß ich noch nicht, ob sie die GUI implementiert haben, um die Berechtigungen anzuzeigen, die für jede App bei der Installation erforderlich sind.
https://blogs.gnome.org/alexl/2017/01/20/the-flatpak-security-model-part-2-who-needs-sandboxing-anyway/
Ich habe auch Ubuntus Alternative, Snappy, nicht benutzt, um zu wissen, ob es eine solche Funktion bietet, die in der GUI sichtbar ist.
quelle
Es ist technisch möglich , und die Lösungen sind
apparmor
,selinux
undfirejail
oder sogar volle Container wieLXC
oder eine vollständige virtuelle Maschine (zBVirtualBox
,kvm
odervmware
). Für die Vernetzung gibt esopensnitch
einen Klon deslittlesnitch
Programms von OSX.Der Grund, warum es kein verbreitetes Sicherheitsmodell mit vom Benutzer erteilten Berechtigungen gibt, ist, dass Sie traditionell vorsichtig sind, was Sie auf Ihrem PC ausführen. 90% der Inhalte in den Appstores mobiler Systeme werden auf PCs als Malware eingestuft.
Es gibt Scanner für Adware (dh Adware oder Spybot D & D), die Verhalten wie das Verbinden von Facebook, Google Analytics und Werbenetzwerken als Malware auf dem PC einstufen. Das mobile Ökosystem ist wie ein Neustart des Computers, wenn es um diese Dinge geht. Jeder bündelt Adware, nur weil es einfach ist und fügt Analytics hinzu, nur weil er neugierig ist. Die Nebenwirkungen sind verminderte Privatsphäre und Sicherheit. Der Sicherheitsteil wird vom Sandbox-Modell berücksichtigt, der Datenschutzteil ist immer noch ein offenes Problem.
Ein weiterer Grund dafür, dass dies nicht lange auf dem PC vorhanden ist, ist die Komplexität einer Sandbox, was bedeutet, dass beide für ältere PCs vor einiger Zeit möglicherweise zu langsam sind und mehr Engineering für etwas erforderlich sind, das damals wenig Vorteile hatte.
Heute sehen wir Versuche, Sandboxing in neuen Paketformaten wie Snap und Flatpak zu verwenden, und Browser verwenden es auch für ihre Erweiterungen. Chromium verwendet seit dem Start ein Berechtigungsmodell, und Firefox verwendet eines für alle Weberweiterungen (seit 57 die einzigen Erweiterungen, die Sie installieren können). Dies ist sehr vernünftig, da Benutzer Browsererweiterungen von unbekannten Autoren genauso installieren wie Apps von Personen, von denen sie noch nie gehört haben. Sie glauben, dass sie nicht gefährlicher sind als eine Website, die sie besuchen.
quelle
Android verwendet ein "Marktplatz" -Sicherheitsmodell: Verschiedene Anwendungen stammen von verschiedenen (semi-vertrauenswürdigen) Anbietern und sollten von geschützten Ressourcen und voneinander isoliert werden. Die meisten Apps werden gewinnorientiert vertrieben: Sie werden verkauft (Payware), zeigen bezahlte Werbung oder "monetarisieren" ihre Benutzer, indem sie ihre Daten an Dritte verkaufen. Es besteht eine hohe Motivation, sich auf illegale Datenzugriffe einzulassen, auch wenn sie erwischt werden.
Die meisten Anwendungen in Debian, Red Hat und ähnlichen "klassischen" Linux-Distributionen werden in Quellform verteilt: Nachdem eine Open-Source-Anwendung genügend Traktion erlangt hat, wird sie manuell ausgewählt, um von Distributionsbetreuern aufgenommen zu werden. Es gibt wenig Motivation, einen illegalen Datenzugriff durchzuführen. Potenzielle Gewinne rechtfertigen keine Bemühungen.
Es ist erwähnenswert, dass das fortschrittliche Sicherheitsmodell von Android einer der Gründe ist, warum es so viel Anziehungskraft erlangt und iOS auf mobilen Märkten leicht überwindet. Moderne Desktop-Linux-Distributionen sind nicht nur "anders" - sie sind auch in Bezug auf ihre Sicherheits- und Distributionsmodelle weit in der Vergangenheit.
Einige Linux-Distributionen haben Verbesserungen an ihrem Softwareverteilungssystem vorgenommen: zentrale Software-Repositorys von Drittanbietern (AUR), spezielle Paketformate für die Verteilung von Software von Drittanbietern (AppImage, Snappy, Flatpack) und sekundäre Repository-Systeme (Docker). Leider gewinnen diese Verbesserungen mit der Zeit nur sehr wenig an Bedeutung: AppImage wurde 2004 erfunden, die erste Version von AUR wurde 2005 veröffentlicht, aber keine der modernen Linux-Distributionen hat ihre Funktionen nach mehr als 10 Jahren offiziell übernommen.
quelle
Diese Anwendungen werden in einem privilegierten Teil des Dateisystems installiert, auf das Sie und die meisten Benutzer normalerweise keinen Zugriff haben.
In Mainstream-Distributionen, die für die Desktop-Verwendung eingerichtet wurden, hat der einzelne Benutzer, der bei der Installation eingerichtet wurde, normalerweise Administratorrechte. Normalerweise werden sie nur nach ihrem eigenen Anmeldekennwort gefragt, um die Software zu installieren, und das nicht immer.
Nach der Installation wird die Software standardmäßig so eingerichtet, dass sie von normalen Benutzern ausgeführt werden kann und das Lesen von Datendateien ermöglicht. Das ist alles was benötigt wird.
Nicht das Programm. Was passiert ist, dass das Benutzerkonto zu verschiedenen Gruppen gehört und die verschiedenen Gruppen Zugriff auf verschiedene Ressourcen gewähren.
Das Sicherheitsmodell unter Linux sieht vor, dass Ihr Benutzerkonto über bestimmte Rechte verfügt und die Gruppen, zu denen Ihr Konto gehört, über bestimmte Rechte verfügen. Um auf einen Teil des Dateisystems zugreifen zu können, sind Root-Rechte erforderlich, die normalerweise nicht an Benutzer vergeben werden. Selbst wenn Sie sudo verwenden, erhalten Sie nicht alle Rechte.
Normale Benutzerkonten haben normalerweise Zugriff auf die Ressourcen, die sie voraussichtlich benötigen, z. B. das Internet.
Auf jedes Verzeichnis oder jede Datei, auf die Sie als Benutzer zugreifen dürfen, kann von der Anwendung zugegriffen werden, die Sie starten, da diese normalerweise Ihre Rechte erbt. Ein normal angemeldeter Benutzer hat normalerweise nicht das Recht, die meisten kritischen Systemdateien oder freigegebenen Dateien zu ändern.
Denken Sie daran, dass die meisten Benutzer Anwendungen in der Regel von Repositorys installieren, die gut überwacht werden und das Risiko feindlichen Codes gering ist.
Ich würde wahrscheinlich eine zusätzliche Lektüre vorschlagen, um sich mit Linux-Berechtigungen vertraut zu machen.
Eine Einführung in Linux-Berechtigungen
Grundlegendes zu Linux-Dateiberechtigungen
Das Android-Sicherheitsmodell wird weiterentwickelt, um den Anforderungen von Benutzern gerecht zu werden, die nicht nur im Allgemeinen nichts über das zugrunde liegende Sicherheitsmodell des Betriebssystems wissen, sondern auch kaum etwas über Computer verstehen .
Das Linux-Modell (das ich ehrlich gesagt mehr mag) soll es Benutzern (und insbesondere Administratoren) ermöglichen, mehr Kontrolle über die Sicherheit des Systems auszuüben (innerhalb der Grenzen, in denen die Berechtigungen zulässig sind).
Ich denke, vom Standpunkt des Benutzers aus ist es am besten als der Unterschied zwischen vollautomatischer und halbautomatischer oder manueller Steuerung zu beschreiben. Moderne Verbraucher wollen vollautomatisch. Linux hat semi-auto und manuell. Die meisten Linux-Benutzer müssen heutzutage nie mehr über das Sicherheitsmodell Bescheid wissen, aber das Steuerelement ist da, wenn Sie es benötigen oder möchten.
quelle
Wenn Sie einige Programme installieren, können Sie sie in Ihrem eigenen Benutzerbereich (dh in Ihrem Home-Verzeichnis) und nicht systemweit installieren. Als solches werden Sie nicht nach Superuser-Rechten gefragt, da Sie diese nicht benötigen, um ein Programm für den Eigengebrauch eines Benutzers zu installieren. Ein auf diese Weise installiertes Programm wäre in der Tat nicht in der Lage, auf Dateien zuzugreifen, denen die Berechtigung "Nicht-Eigentümer-Nicht-Gruppenmitglieder können diese Berechtigung lesen" ohne eine erweiterte Berechtigung nicht erteilt wurde.
quelle