Dennis K.: Rechte Linux

Hallo und Guten Morgen,

welche rechte brauch ein user in Linux um auf unterster ebene (da wo etc, home, bin etc) des dateisystems einen ordner erstellen zu können?
Wäre nett wenn mir das einer schreiben würde!
Danke und Schönen Sonntag noch!

  1. Hi,

    Hallo und Guten Morgen,

    welche rechte brauch ein user in Linux um auf unterster ebene (da wo etc, home, bin etc) des dateisystems einen ordner erstellen zu können?

    In aller Regel musst du dafür root sein. Also
    $ sudo mkdir /verzeichnis
    [Root-Passwort eingeben]
    fertig.

    Wenn du genau wissen willst, wem die Wurzel gehört und wie die Rechte sind, gib mal
    $ ls -l /
    ein. Es gibt einen Verzeichinseintrag namens ".", das aktuelle Verzeichnis selbst. Lautet wahrscheinlich etwa
      drwxr-xr-x root root [...] .
    Es gehört also User und Gruppe root, und nur der User root darf schreiben. Gruppe und alle anderen dürfen nur lesen und "ausführen" (bei Verzeichnissen bedeutet das x konkret: cd auf dieses Verzeichnis ausführen).

    Schöne Grüße
    Sascha

    1. Hi,

      vielen dank!
      Wenn ich ls -l oder -al sehe ich zwar das alle Ordner dem root gehören, aber wie soll man denn daraus schließen können das dort nur der root ordner erstellen kann? (bin auf unterster ebende).

      Danke!

      1. Hallo,

        Wenn ich ls -l oder -al sehe ich zwar das alle Ordner dem root gehören, aber wie soll man denn daraus schließen können das dort nur der root ordner erstellen kann? (bin auf unterster ebende).

        Wenn du die den Ordner ansiehst wirst du so etwas ähnliches sehen:

        ls -l /

        drwxr-xr-x  2 root root  4096 2006-12-03 19:51 bin

        drwxr-xr-x sagt wie die Berechtigungen gesetzt sind
        root root  sagt welchem Benutzer und welcher Gruppe der Ordner gehört

        rwxr-xr-x lässt sich in drei Gruppen ausfteilen:
        rwx  steht für den Besitzer
        r-x  steht für die Gruppe
        r-x  steht für die "Welt" (also alle)

        Der Besitzer (also root) darf als einziger schreiben ([w]write). Lesen ([r]ead) dürfen alle und x steht für e[x]ecuteable bei Dateien und heist bei Verzeichnissen "darf sich den Inhalte des Verzeichnissen anschauen".

        Im Internet ist schon sehr viel dazu geschrieben worden. Einfach googeln :-)

        Gruß,
        Severin

        --
        They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
        -- Benjamin Franklin
        1. Hallo,

          Im Internet ist schon sehr viel dazu geschrieben worden. Einfach googeln :-)

          Ein guter Treffer ist: http://pmhahn.de/linux/rechte.shtml

          Gruß,
          Severin

          --
          They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
          -- Benjamin Franklin
      2. echo $begrüßung;

        Wenn ich ls -l oder -al sehe ich zwar das alle Ordner dem root gehören, aber wie soll man denn daraus schließen können das dort nur der root ordner erstellen kann? (bin auf unterster ebende).

        Die anderen Ordner sind nicht interessant. Du benötigst nur das Schreibrecht für den Ordner in dem du einen anderen Ordner (oder eine Datei) erstellen (oder löschen) möchtest, in deinem Fall also der /
        ls -ld /  beschränkt sich beim Auflisten auf genau den Root-Ordner

        echo "$verabschiedung $name";

        1. Hi,

          ok, habe es raus!
          Danke!
          Wenn ich den befehl find zur suche einer Datei nutze ich aber den ort/ordner nicht kenne gebe ich eifach:
          find / -name datei
          ein, nach der suche und dem ergebniss bekomme ich die Meldung:
          -------------------------------------------------------------------
          find: WARNING: Hard link count is wrong for /: this may be a bug in your filesystem driver.  Automatically turning on find's -noleaf option.  Earlier results may have failed to include directories that should have been searched.
          -------------------------------------------------------------------
          Was ist damit gemeint?

          1. Hallo Dennis,


            find: WARNING: Hard link count is wrong for /: this may be a bug in your filesystem driver.  Automatically turning on find's -noleaf option.  Earlier results may have failed to include directories that should have been searched.

            Was ist damit gemeint?

            Die Meldung sollte eigentlich nicht auftreten, die könnte auf Inkonsistenzen im Dateisystem hindeuten. Hast Du mal eine Dateisystemprüfung durchgeführt?

            Was die Meldung genau bedeutet: Ein Dateisystem speichert Dateien in mindestens zwei verschiedenen Teilen: Zum einen als Eintrag im Verzeichnis, in dem sich die Datei befindet, dort steht mindetens der Name der Datei drin. Zum anderen werden die Daten separat abgelegt. Zusätzliche Informationen wie Besitzer, Rechte, Datum werden entweder im Verzeichnis abgespeichert oder an einem dritten Ort.

            Bei FAT (DOS/Windows) sieht das ganze so aus: Alle Metainformationen zu einer Datei sind im Verzeichnis gespeichert, d.h. das Verzeichnis enthält Name, Datum, Attribute, etc. der Datei. Ferner enthält das Verzeichnis die Nummer des ersten Blocks der Datei. In einem extra reservierten Bereich des Dateisystems wird dann noch vermerkt, welches der nachfolgende Block zum ersten ist, dann wieder welches der nachfolgende zu dem ist usw. usf.

            Bei typischen Linux-Dateisystemen sieht das dagegen so aus: Im Verzeichnis wird nur der Name und die sogenannte Inode-Nummer erwähnt. Zu jeder Datei gibt es dann eine sogenannte Inode, die dann die weiteren Informationen wie Besitzer, Rechte und Datum zu dieser Datei enthält sowie die Angabe, welche Blöcke die Datei belegt. Unter Linux ist es ferner möglich, dass auf eine Inode zwei Einträge in einem Verzeichnis zeigen. Wenn ich also einen Eintrag /a habe und einen Eintrag /b und beide zeigen auf die gleiche Inode, dann sind beide im Endeffekt die gleiche Datei. Das ganze nennt sich "Hard links". Man kann bei "Hard links" nicht auseinanderhalten, welches von beiden die ursprüngliche Datei ist, beide Einträge im Verzeichnis sind absolut äquivalent.

            Hard links auf Verzeichnisse sind heutzutage (zumindest unter Linux) verboten, da zu viele Leute damit zuviel Mist angestellt haben (man kann damit prima Endlosschleifen und ähnliches basteln) - und man eigentlich nie einen sinnvollen Einsatzzweck dafür gefunden hat. Allerdings werden Hard Links auf Verzeichnisse durchaus noch intern verwendet. Es gibt ja in jedem Verzeichnis zwei besondere Verzeichnisse '.' und '..'. Unter DOS/Windows sind das wirklich nur symbolische Namen, die es NICHT gibt. Unter Linux dagegen sind '.' und '..' dagegen real existierende Einträge in *jedem* Verzeichnis, die nichts anderes als Hard links auf das eigene Verzeichnis bzw. das Elternverzeichnis sind.

            Nun gibt es in jeder Inode noch einen sogenannten "Hard link count", der angibt, wie oft es Hard links auf eine Inode gibt. Denn wenn ich einen Verzeichniseintrag per »rm« lösche, dann lösche ich erst einmal nur den Eintrag, nicht die Inode. Dabei wird allerdings auch dieser Zähler in der Inode um 1 verringert. Sollte der Zähler in der Inode 0 erreicht haben, heißt das, die Inode wird nirgendwo mehr verwendet, d.h. es wurde der letzte Eintrag zu dieser Datei gelöscht, d.h. die ganze Datei kann verschwinden, dann wird auch die Inode gelöscht und die Blöcke wieder freigegeben, die die Datei enthielten.

            Deine Meldnug besagt nun, dass der Zähler des Hauptverzeichnisses (/) nicht mit der Anzahl an Links, die es geben _müsste_, übereinstimmt. Das tritt unter Umständen bei Dateisystemen auf, die die Semantik mit . und .. nicht so umsetzen, d.h. bei FAT o.ä., wenn Du das unter Linux einbindest, da wäre das auch kein Problem. Bei einem Linux-Dateisystem, wie Du es für Dein Hauptverzeichnis / verwendest, sollte so etwas aber definitiv nicht auftreten; es gibt hierfür zwei Möglichkeiten:

            * Das Dateisystem ist inkonsistent: dann solltest Du dringend eine
               Überprüfung des Dateisystems durchführen.
             * Der Dateisystemtreiber hat einen Bug: dann solltest Du dringend einen
               neuen Kernel nutzen mit einer ausgebesserten Version des Dateisystem-
               treibers, denn sonst könntest Du Daten verlieren.

            Der Rest der Meldung (mit dem -noleaf und so) sagt nichts anders aus, als dass find erkannt hat, dass es da irgend ein Problem gibt und dass es eine Optimierung automatisch ausgeschaltet hat, die im Normalfall den Suchvorgang beschleunigt, wenn der Hard link count für Verzeichnisse stimmt.

            Viele Grüße,
            Christian

            --
            "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup
            1. Wow,

              das hast du echt interessant beschrieben, alle achtung!
              Nun verstehe ich die ganze geschichte mit dem inode, habe es zwar oft gelesen aber konnte damit nie was anfangen.
              Sehr sehr gut!

              Ich bin aber noch "newbie" was linux angeht und wahrscheinlich auch noch nicht in der lage evtl. einen kernel zu tauschen.
              Aber wie kann ich ein Dateisystem auf fehler Prüfen?
              Danke dir!

              1. Hallo Dennis,

                Aber wie kann ich ein Dateisystem auf fehler Prüfen?

                Bei den meisten Distributionen reicht es, wenn Du als root

                touch /forcefsck

                eingibst (das legt eine leere Datei namens "forcefsck" im Hauptverzeichnis an) und dann neu bootest. Beim Neustart werden dann alle dauerhaft eingehängten Dateisysteme auf Fehler geprüft. Wenn das nicht klappt (d.h. er beim booten gar nichts anders macht und v.a. nicht länger als sonst braucht), wäre interessant zu wissen, welche Distribution und welches Dateisystem Du verwendest.

                Viele Grüße,
                Christian

                --
                "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup