Hexer: Linux: Software-Installation nur als root?

Hi, ich bin dabei, GNU/Linux etwas zu erforschen, und bin etwas verwirrt über die Theorie und Praxis von Software-Installationen unter Linux.
In der Theorie sollte es doch, so weit ich es verstanden habe, möglich sein, Software auch als normaler Benutzer zu installieren - grundsätzlich zumindest. Natürlich mag es Ausnahmen geben, wenn man vielleicht Dateien in Verzeichnissen ablegen muss, auf die eben nur root Zugriff hat. Aber trotzdem gilt doch das oben Gesagte, oder?
In der Praxis, das heißt für mich bei gängigen Distros, werden Software-Installationen *immer* über einen Paket-Manager gemacht, bei SuSE habe ich yast kennen gelernt, bei Debian apt. Zumindest Debian rät, diese Automatismen nicht zu umgehen, sondern alles über den Paket-Manager zu machen.
Aber völlig egal, wie banal es auch sein mag, was ich vorhabe, immer muss ich mich als root anmelden. Untergräbt dieses Verhalten von Distros nicht den eigentlichen Sinn des root-Konzepts, sich nur dann als root anzumelden, wenn es nötig ist?

Für hoffentlich einige Denkanstöße/Erklärungen dankt
Der Hexer ;-)

  1. Hallo Hexer.

    In der Theorie sollte es doch, so weit ich es verstanden habe, möglich sein, Software auch als normaler Benutzer zu installieren - grundsätzlich zumindest.

    Nein. Grundsätzlich nicht. Nein, auch dann nicht.
    Eine Softwareinstallation ist ein gravierender Eingriff ins System, die Folgen sind nicht immer abzuschätzen, weshalb die Installation nur von einem gewissenhaften Benutzer durchgeführt werden sollte, zu welchen root normalerweise gehört.

    Natürlich mag es Ausnahmen geben, wenn man vielleicht Dateien in Verzeichnissen ablegen muss, auf die eben nur root Zugriff hat.

    Da bei im Grunde jeder Installation Dateien in ebensolchen Verzeichnissen abgelegt werden müssen, sind hier stets die Rechte des Superusers erforderlich.

    Zumindest Debian rät, diese Automatismen nicht zu umgehen, sondern alles über den Paket-Manager zu machen.

    Die Softwareverwaltung per Paketverwaltung ist auch weitaus sauberer und ermöglicht bequeme Updates. Ich bin der Auffassung, dass man die Paketverwaltung nicht mehr missen möchte, wenn man sie einmal wirklich einzusetzen weiß.

    Untergräbt dieses Verhalten von Distros nicht den eigentlichen Sinn des root-Konzepts, sich nur dann als root anzumelden, wenn es nötig ist?

    Wie gesagt; bei einer Softwareinstallation *ist* es nötig.

    Einen schönen Samstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. Moin!

      In der Theorie sollte es doch, so weit ich es verstanden habe, möglich sein, Software auch als normaler Benutzer zu installieren - grundsätzlich zumindest.

      Nein. Grundsätzlich nicht. Nein, auch dann nicht.

      Doch.

      Ein Benutzer ist in der Lage, Dateien neu anzulegen. Deren Besitzer ist er dann auch. Und denen kann er Ausführungsrechte geben.

      Schwups: Schon hat er Software installiert.

      Diese Software kann er dann sogar starten und benutzen. Und wenn er der Gruppe oder "anderen" auch Ausführungsrechte gibt, können die das Programm auch ausführen.

      Ist nur die Frage, ob die das auch finden. Denn in die üblichen Orte für Programme darf man als User ja nicht schreiben - und der Pfad dürfte für andere Benutzer auch kaum auf das benutzte Verzeichnis zeigen (außer man ändert was).

      - Sven Rautenberg

      --
      My sssignature, my preciousssss!
      1. Hallo Sven.

        Ein Benutzer ist in der Lage, Dateien neu anzulegen. Deren Besitzer ist er dann auch. Und denen kann er Ausführungsrechte geben.

        Schwups: Schon hat er Software installiert.

        Heute ist anscheinend nicht mein Tag, du hast natürlich vollkommen Recht.

        Einen schönen Samstag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
    2. hallo Ashura,

      In der Theorie sollte es doch, so weit ich es verstanden habe, möglich sein, Software auch als normaler Benutzer zu installieren - grundsätzlich zumindest.
      Nein. Grundsätzlich nicht. Nein, auch dann nicht.

      Doch, grundsätzlich doch, und vor allem _dann_, wenn ... (ja, wann eigentlich?)

      Eine Softwareinstallation ist ein gravierender Eingriff ins System

      Nicht immer. Es hängt sehr stark von der Software ab.

      die Folgen sind nicht immer abzuschätzen, weshalb die Installation nur von einem gewissenhaften Benutzer durchgeführt werden sollte, zu welchen root normalerweise gehört.

      Liest sich auf den ersten Blick überzeugend, ist es aber nicht. Gerade weil "Folgen" nicht immer abschätzbar sind, hat ein beliebiger Benutzer selbstverständlich die Möglichkeit, _seine_ Softwareinstallation(en) durchzuführen und ausführbare Dateien beispielsweise in /~/bin abzulegen - und die dann über PATH in seinem Userprofil aufzurufen.

      Natürlich mag es Ausnahmen geben, wenn man vielleicht Dateien in Verzeichnissen ablegen muss, auf die eben nur root Zugriff hat.
      Da bei im Grunde jeder Installation Dateien in ebensolchen Verzeichnissen abgelegt werden müssen, sind hier stets die Rechte des Superusers erforderlich.

      Da muß ich dir ein ernsthaftes NEIN entgegenschmettern. Selbst Systemtools wie YaST oder apt können in gewissem Umfang von nichtprivilegierten Benutzern angesprochen und verwendet werden. Allerdings sollte ein nichtprivilegierter user keine Software installieren dürfen, die systemweit zur Verfügung stehen soll - also beispielsweise keine Firewall. aber warum soll er sich nicht seinen Lieblingsbrowser oder einen bestimmten mail-Client installieren dürfen?

      Zumindest Debian rät, diese Automatismen nicht zu umgehen, sondern alles über den Paket-Manager zu machen.
      Die Softwareverwaltung per Paketverwaltung ist auch weitaus sauberer und ermöglicht bequeme Updates.

      Noch ein ernsthaftes NEIN. Nimm beispielsweise Gentoo: da gibt es zwar ein ebuild für Apache 2.2.0, aber das ist aus Sicherheitsgründen (es scheint da noch irgendwelche nicht aufgelösten Konflikte zu geben) immer noch "maskiert". Wenn ich die Maskierung aufhebe und so einen Apache als root trotzdem installiere und auch gleich noch per daemon bei Systemstart losrennen lasse, steht er allen Benutzern zur Verfügung. Das ist aber vielleicht gar nicht gewollt. Also hole ich mir nach der Anmeldung als normaler Benutzer mit eingeschränkten Rechten die Sourcen von httpd.apache.org, lege mir ein Verzeichnis ~/Apache an, kompiliere ihn mir selber und sorge dafür, daß sein bin-Verzeichnis im PATH steht. Die Folge: wenn ich mich als root anmelde, habe ich gar keinen Apache, wenn ich mich als "user1" anmelde, habe ich einen Apache 2.0.55, der über eine von root vorgenommene Standard-Installation aus dem portage-Tree gebaut wurde, wenn ich mich aber als "user2" anmelde, habe ich einen recht gut funktionierenden Apache 2.2.0 - und den will ich mir ja nun wirklich gründlich anschauen *g*

      Ich bin der Auffassung, dass man die Paketverwaltung nicht mehr missen möchte, wenn man sie einmal wirklich einzusetzen weiß.

      Das ist schon richtig, gilt aber nicht generell (und gerade gegenüber YaST bekommt man mit einer solchen Auffassung erhebliche Schwierigkeiten). Ich würde diese Aussage erweitern wollen: ich bin der Auffassung, daß man die Möglichkeiten, mit ./configure beim Kompilieren von Software nicht mehr missen möchte, wenn man sie einmal kennengelernt hat und wirklich einzusetzen weiß. Die diversen "Paketverwaltungsprogramme" wie YaST und auch apt sind meines Erachtens (sehr nützliche und hilfreiche) Zugeständnisse an diejenigen Benutzer, die unsicher sind, aber einfach eine "funktinierende" Softwareumgebung haben wollen. Das ist nett gedacht und hilft tatsächlich vielen Leuten, sich ihr "Linux" erstmal funktionsfähig einzurichten. Aber es führt gleichzeitig eben zu der irrigen Auffassung, daß es "nur" so geht.

      Untergräbt dieses Verhalten von Distros nicht den eigentlichen Sinn des root-Konzepts, sich nur dann als root anzumelden, wenn es nötig ist?
      Wie gesagt; bei einer Softwareinstallation *ist* es nötig.

      Wie gesagt: nein, es ist nicht *zwingend* nötig, für viele (Anfänger und auch Fortgeschrittene) ist es aber ganz hilfreich.

      Der "Sinn des root-Konzepts" (schöne Begriffsfindung übrigens) wäre vielleicht weiter zu diskutieren. Daß root Software installieren kann, ist ja nicht seine einzige Aufgabe. Und weshalb root von manchen Distributionen (z.B. Debian) gehindert wird, eine grafische Oberfläche zu betreten, ist für Anfänger oft sehr schwer verständlich. Selbst die SUSE zeigt, wenn man sich als root anmeldet, standardmäßig einen knallroten Hintergrund bei KDE mit allerhand Bomben und Explosionswarnschildern - nur erklärt sie nicht, warum das so ist, und auch die anderen erklären es nicht. Also suchen viele nach Möglichkeiten, wie man diese scheinbaren Restriktionen umgehen kann - man kann es ja leider. Nur hat man dann den Sinn dieser Restriktionen nicht verstanden.

      Es wäre nun fatal, wenn ausschließlich root Software installieren und/oder die Installations- und Verwaltungswerkzeuge bedienen dürfte. Der Sinn des "user-Konzepts" besteht ja unter anderem darin, daß ein Benutzer ebenfalls die volle Souveränität über den Teil des Systems haben soll, der ihm von root zugänglich gemacht wird. Vielleicht will ja "user1" ein KDE haben, wenn er "startx" aufruft, und die ganzen neckischen kleinen Spielchen spielen können, vielleicht will ja "user2" stattdessen eine GNOME-Oberfläche haben und edonkey benutzen können, findet aber die Spielerchen so richtig äks ...

      Es ist auch nicht nötig, daß beispielsweise root Datenbanksysteme wie PostgreSQL "benutzen" kann - root muß lediglich entscheiden dürfen, ob er das einem user erlaubt oder nicht, und bei Bedarf muß root Konfigurationsdateien korrigieren oder ganze Installationsverzeichnisse der "user" löschen oder bereitstellen können. root hat als Superuser Verwaltungsaufgaben gegenüber dem Geaamtsystem -und_ den usern - aber was ein "user" in seinem eigenen Verzeichnis anstellt, geht ihn eigentlich wenig an. Es ist ungefähr dasselbe Verhältnis wie das von Eltern gegenüber ihren Kids: wie die ihre Kinderzimmer ausgestalten, geht ab einer gewissen Altersstufe die Eltern nix mehr an, aber sie haben natürlich einen Genralschlüssel fürs Kinderzimmer und können sich bei begründetem Verdacht auch mal umsehen, was da grade so los ist. Meistens wird es fürchterlich unaufgeräumt aussehen. Als pädagogisch geschulter Vater wird man da vielleicht einmal pro Jahr mit geballter Autorität dazwischenfunken und kategorisch eine Aufräumaktion verlangen - aber nicht häufiger. Es sei denn, Sohnemann oder Töchterchen hat angefangen, tragende Wände der gesamten Hauskonstruktion herauszuklopfen. Das geht dann zu weit. Da kriegt das aufmüpfige Kind eben ein neues frisch renoviertes Kinderzimmer (das in wenigen Tagen garantiert wieder unaufgeräumt auseehen wird), und als treusorgender Vater kann man sich dann unter vielen Seufzern an die Renovierung der tragenden Elemente des Einfamilienhauses machen ...

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. [...] Und weshalb root von manchen Distributionen (z.B. Debian) gehindert wird, eine grafische Oberfläche zu betreten, ist für Anfänger oft sehr schwer verständlich. [...]

        Stimmt, das war mir auch schon aufgefallen. Wie lautet denn die Begründung? Kann man die irgendwo nachlesen?
        Anders gefragt, warum soll es gefährlicher sein, eine grafische Oberfläche als root zu betreten, als eine root-Kommandozeile aufzurufen? (Was unter Debian ohne jedwede Warnung möglich ist.)

        Als Folge muss man ständig sein root-Passwort eintippen. Kann man sich übrigens irgendwie dagegen schützen, dass irgendein bösartiges Programm sich als Debian-Dialogfeld ausgibt, das ganz offiziell nach meinem root-Passwort fragt?

        Es wäre nun fatal, wenn ausschließlich root Software installieren und/oder die Installations- und Verwaltungswerkzeuge bedienen dürfte. [...]

        Kann denn root z.B. unter Debian bestimmten Benutzern ausgewählte weitere Rechte geben, die über die normalen Benutzer-Rechte hinausgehen? Ich meine damit: ohne Trickserei, sondern mit den distroseitig zur Verfügung gestellten Paketmanagern/Tools.

        Hexer

        1. echo $begrüßung;

          Kann man sich übrigens irgendwie dagegen schützen, dass irgendein bösartiges Programm sich als Debian-Dialogfeld ausgibt, das ganz offiziell nach meinem root-Passwort fragt?

          Dazu müsstest du es erst einmal aufrufen. Zum einen werden Befehle gemäß der Reihenfolge der Verzeichnisse im PATH gesucht. Dabei ist im Allgemeinen das aktuelle Verzeichnis (.) nicht im PATH enthalten. Es sollte also nicht passieren, dass du im /tmp oder einem Benutzerverzeichnis stehst, dort jemand ein ausführbares ls hingelegt hat, welches dann statt /usr/bin/ls aufgerufen wird. Die im Default-PATH enthaltenen Verzeichnisse, sollten auch nicht von normalen Usern beschreibbar sein. Wenn also ein Bösewicht aufgerufen werden soll, müsste der vollständige Pfad /pfad/zu/programm oder explizit ein ./programm für das aktuelle Verzeichnis angegeben werden.

          Natürlich ist der root auch nur ein Mensch der Fehler machen oder unwissend sein kann, und ein System ist gelegentlich mit Sicherheitslücken ausgestattet ...

          echo "$verabschiedung $name";

        2. hallo Hexer,

          [...] Und weshalb root von manchen Distributionen (z.B. Debian) gehindert wird, eine grafische Oberfläche zu betreten, ist für Anfänger oft sehr schwer verständlich. [...]
          Stimmt, das war mir auch schon aufgefallen. Wie lautet denn die Begründung?

          Die ist relativ einfach: wenn du dich als root anmeldest, haben sämtliche Prozesse, die du dann startest, ebenfalls root-Rechte. Und wenn du nun eine grafishe Oberfläche startest, z.B. KDE, sind das etliche unterschiedliche Prozesse allein für KDE, aber auch für alles, was du in KDE machst - also Browser aufrufen und alles andere. Das ist ein enormes Sicherheitsrisiko.

          Kann man die irgendwo nachlesen?

          Jaein. In hunderten Diskussionen zu diesem Thema im Usenet kann man das wohl, aber mir ist kein "Tutorial" bekannt, das diesen Zusammenhang mal kurz und bündig darstellen würde.

          Anders gefragt, warum soll es gefährlicher sein, eine grafische Oberfläche als root zu betreten, als eine root-Kommandozeile aufzurufen? (Was unter Debian ohne jedwede Warnung möglich ist.)

          Weil ein einzelner Prozeß, den root mit seinen Rechten startet, überschaubar ist und bei Gefahr leicht abgebrochen werden kann. Das ist bei einer grafischen Umgebung so gut wie nicht mehr gegeben. Übrigens gilt das analog auch für Windows, wo ja die Mehrzahl der Benutzer ebenfalls (aus Bequemlichkeit und/oder Unverständnis) auch mit einem Administrator-Account unterwegs ist. Das trägt nicht unwesentlich zur Anfälligkeit von Windows gegenüber Viren und Würmern bei und beschert den Herstellern von Antivirussoftware einen boomenden Markt.

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
        3. hallo,

          Kann denn root z.B. unter Debian bestimmten Benutzern ausgewählte weitere Rechte geben, die über die normalen Benutzer-Rechte hinausgehen? Ich meine damit: ohne Trickserei, sondern mit den distroseitig zur Verfügung gestellten Paketmanagern/Tools.

          Ja, root kann sowas prinzipiell, und das hat mit den Distributionen überhaupt nichts zu tun, das klappt mit jedem Linux. Vielleicht möchtest du dich noch etwas genauer mit der Benutzer- und Gruppenverwaltung beschäftigen. Du kannst einen beliebigen Benutzer ja in mehrere Gruppen aufnehmen, er hat dann immer alle die Rechte, die ihm seine Gruppenzugehörigkeit(en) eröffnen. Definiere ganz einfach eine neue Gruppe, die die von dir gewünschten Rechte bekommt und nimm den Benutzer, den du meinst, als Mitglied in diese Gruppe auf.

          Grundsätzlich kannst du genau dasselbe auch auf einer Windows-Kiste mit den dort vorhandenen Benutzern und Gruppen machen.

          Rechteverwaltung ist ein ziemlich umfangreiches Thema, das mit der Frage nach "chmod" bei weitem nicht erschöpft ist.

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
  2. In der Theorie sollte es doch, so weit ich es verstanden habe, möglich sein, Software auch als normaler Benutzer zu installieren -

    Ist es ja auch. Du kopierst die entsprechenden Dateien in dein Home-Verzeichnis und startest dann daraus.
    Mach ich z.B. mit FF und TB, da die gelieferten Pakete von Debian/Etch probleme machen mit der Installation von Erweiterungen (Ich hab keine Lust, mich dafürals Root anzumelden ;))

    Eine Deinstallation beschränkt sich dann auf das Löschen des Verzeichnisses. Das funktioniert natürlich nur mit Programmen, die keinen Zugriff auf das restliche System haben.

    1. Hallo Manuel.

      Mach ich z.B. mit FF und TB, da die gelieferten Pakete von Debian/Etch probleme machen mit der Installation von Erweiterungen (Ich hab keine Lust, mich dafürals Root anzumelden ;))

      Was für Probleme?
      Normalerweise sollten die zu installierenden Erweiterungen doch im Firefox-Profilverzeichnis unter ~ abgelegt werden? Warum sollten hier also su-Rechte erforderlich sein?

      Einen schönen Samstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
      1. Hi Ashura,

        Normalerweise sollten die zu installierenden Erweiterungen doch im Firefox-Profilverzeichnis unter ~ abgelegt werden? Warum sollten hier also su-Rechte erforderlich sein?

        Zumindest schaff ich es nicht, eine normale XPI per mausklick zu installieren. Da ich keine Lust hastte, lange nach den Uersachen zu suchen, hab ich mir die aktuellen Versionen in meinem Userverzeichnis installiert. Dann hab ich keine Probleme mit der Installation von Erweiterungen.

        1. Hallo Manuel.

          Zumindest schaff ich es nicht, eine normale XPI per mausklick zu installieren.

          OK, das ist merkwürdig.
          Ich installiere Erweiterunge bisher entweder direkt per Klick im Firefox oder lade mir die XPI herunter und befördere sie per Drag-and-Drop ins Erweiterungsfenster; bisher gab es hier keine Probleme.

          Da ich keine Lust hastte, lange nach den Uersachen zu suchen, hab ich mir die aktuellen Versionen in meinem Userverzeichnis installiert. Dann hab ich keine Probleme mit der Installation von Erweiterungen.

          Ist natürlich auch eine Lösung, klar.

          Einen schönen Sonntag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
    2. Hallo,

      Ist es ja auch. Du kopierst die entsprechenden Dateien in dein Home-Verzeichnis und startest dann daraus.

      Was soll denn das werden? Von so einem Vorgehen habe ich noch nie gehört. Sämtliche Programme gehören doch zur "users"-Gruppe, wie auch höchstwahrscheinlich du als User. Wieso sollte es dann ein Problem damit geben?

      Markus.

      --
      http://www.apostrophitis.at
      Maschiene währe Standart Gallerie vorraus Packete Objeckte tollerant vieleicht
      1. Hi,

        Was soll denn das werden? Von so einem Vorgehen habe ich noch nie gehört. Sämtliche Programme gehören doch zur "users"-Gruppe, wie auch höchstwahrscheinlich du als User. Wieso sollte es dann ein Problem damit geben?

        Sobald ein Programm als Root installiert wurde, besteht die Gefahr, durch einen Bug das Dateisystem zu gefärden. Wenn ich Programme nur auf mein Home-Verzeichnis beschränke, schliesse ich diesen Fall generell aus.
        Desweiteren war die Frage, ob es möglich ist, und nur weil du es noch nie gehört hast, heisst das nicht, das es nicht üblich ist.
        Wenn ich sämtliche Software als Root installieren würde, hätte ich in kürzester Zeit einen Sauhaufen in /usr/bin und Konsorten, das ein Überblick nicht mehr möglich ist.