WinFuture-Forum.de: Datei / Verzeichnissystem, Zugriffe bei UNIX - WinFuture-Forum.de

Zum Inhalt wechseln

Beiträge in diesem Forum erhöhen euren Beitragszähler nicht.
Seite 1 von 1

Datei / Verzeichnissystem, Zugriffe bei UNIX

#1 Mitglied ist offline   bliro 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 15. August 16
  • Reputation: 0

geschrieben 04. Mai 2017 - 01:54

Hallo,
ich betrachte das Thema Dateisystem bei Unix anhand des unten aufgeführten Beispiels (Die Vor-Erklärungen sind dunkel blau markiert, Fragen sind grün markiert).


Die Zugriffrechte für Verzeichnisse sind:

R Read – Lesen des Verzeichnis-Inhaltes;
W Write – Schreiben im Verzeichnis, also Anlegen und Löschen von Dateien und Unterverzeichnissen;
X eXecute – Wechseln in das Verzeichnis als aktuelles Arbeitsverzeichnis.


Für Dateien gibt es folgende Rechte:
R Read – Lesen der Datei, also Betrachten des Dateiinhaltes;
W Write – Schreiben in die Datei, also Ändern des Dateiinhaltes;
X eXecute – Ausführen der Datei als Programm.


Mit Hilfe des Kommandos ls -l können die Zugriffsrechte angezeigt werden, wobei die ersten
Spalten mit den angezeigten Zugriffsrechten folgendermaßen aufgebaut sind: Die Spalten 2-4 für den Besitzer der
Datei, die Spalten 5-7 für die Gruppe und die Spalten 8-10 für alle anderen.

-rwxr-xr-- ..... 1 ..... otto .... gast .....278 Jul 24 .......12:01...... doit
drw xr-xr-x ..... 2 ..... otto .... gast .....2048 Jul 17 ..... 13:27...... Pics
-rw------- ..... 1 ..... otto .... gast ......216 Jul 16 ......12:35...... test.dvi
-rw------- . ...... 1 .... otto .... gast ......62 Jul 16 .......15:01...... test.tex
Prozesse:

Das hier gezeigte Verzeichnis beinhaltet ein Unterverzeichnis (Pics) und drei Dateien. Alle gehören dem Benutzer otto und der Gruppe gast.

Frage 1: Gilt hier Pics als unterverzeichnis weil in der zweiten Spalte die Zahl 2 steht gelten die restlichen als Dateien weil da die drei 1 stehen?

doit ist eine für otto und alle Mitglieder der Gruppe gast lesbare und ausführbare Datei (Frage 2a: wovon folgt dass: rwxr bezieht sich NUR auf otto, und dass xr bezieht sich für gast? ) , wobei nur otto die Datei verändern darf ( Frage 2b: weil in rwxr die Buchstabe „w“ in der ersten Zeile ist?)
und alle, die nicht der Gruppe gast angehören, die Datei lesen dürfen. (Frage 2C: Welcher Ausdruck in der ersten Zeile macht Bezug auf „Alle, die nicht der Gruppe gast angehören“? Frage 2d: wodurch wird zum Ausdruck gebracht, dass die die Datei nur lesen dürfen?)

Pics ist ein Verzeichnis (gekennzeichet durch das ”d” am Anfang der Zeile), dessen Inhalt jeder lesen kann (Frage 3a: warum JEDER lesen kann? Ich sehe in der Zeile 2 Spalte 3 und Spalte 4 nur otto und gast… aber vowon folgt in der Erklärung JEDER? In Zeile 2 Spalte 1 sehe ich allein stehende „x“, was in dem Fall von oben erklärt WECHSELN und nicht lesen ?), in das jeder wechseln darf, in dem aber nur otto, der Eigentümer, Dateien erstellen und löschen darf (Frage 3b: wegen allein stehenden „x“ in der 2 Zeile 1 Spalte?)

Die anderen Dateien (test.dvi und test.tex) darf nur otto lesen und ändern; ausführbar sind sie auch f¨ur ihn nicht.
Die Ausführbarkeit einer Datei als Programm hängt nicht vom Namen ab (wie das z.B. bei MS-DOS der Fall ist),
sondern nur vom Zugriffsrecht, das nicht für alle Benutzer dasselbe sein muss.

Anzeige

#2 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 7.765
  • Beigetreten: 20. Juli 07
  • Reputation: 859

geschrieben 04. Mai 2017 - 06:12

#1: Diese Zahl gibt die Zahl der Referenzen auf einen Verzeichniseintrag an.

Für Dateien ist das die Zahl der Hardlinks, die zB mit ln angelegt wurden (OHNE -s).

Für Verzeichnisse sind es *dessen* Verzeichniseinträge. Die haben daher mindestens(!) zwei, weil jedes Verzeichnis automatisch '.' und '..' enthält. Neue Datei da drin anlegen => jetzt steht 3 da.

Verzeichnisse haben aber ein Dateisystemattribut, welches sie als Container ausweist und von Dateien unterscheidet: das D Flag im Berechtigungsfeld (also zB DR-X:---:---).

#2
Für
 -rwxr-xr-- ..... 1 ..... otto .... gast .....278 Jul 24 .......12:01...... doit


folgt Folgendes:

-Reguläre Datei (erstes Flag ganz links ist nicht gesetzt)
-Otto als Besitzer darf lesen, schreiben (ändern) und ausführen (eigenständig, Scripts zählen NICHT darunter)
Gast darf lesen und ausführen. Das gilt NICHT für Otto, falls dieser in der Gruppe Gast stecken sollte.
-Alle anderen dürfen lesen. Note: Im GGS zu Windows ist das NICHT "Jeder"; OTHER ist jeder AUSSER Otto und den Gastmitgliedern, bei Windows wären die dabei
-Referenzen (siehe oben)
-Benutzerzugehörigkeit (wem gehört die Datei)
-Gruppenzugehörigkeit (welcher GRUPPE gehört die Datei, ist wörtlich nicht besonders genau zu beschreiben)
-Länge des Eintrags
-Zeitstempel (üblicherweise modification time = mtime)
- Name des Verzeichniseintrags.

Und weil grad nicht ganz klar ist anhand Deiner Fragen (2*), hier nochmal kurz umrissen:

- Es gibt das Berechtigungsfeld (ganz links in ls -l).
- Das Teil hat üblicherweise 10 Felder.
- Von links:
- Feld #0 => Datei"art" = zB regulär (-), Verzeichnis (d), softlink (l), pipe (p), socket (s), blockdevice (b), character device ©, ...
- Felder ##1-3: Berechtigungssatz für den Besitzer (r, w und x). Das darf *ausschließlich* der Besitzer, bis zu dem Punkt wo er es *nicht* darf. Beispiel weiter unten.
- Felder ##4-6: Dasselbe für die Eigentümergruppe. Das sind alle Mitglieder dieser mit Ausnahme (falls zutreffend) des Eigentümers selbst.
- Felder ##7-9: Alle anderen, also weder Eigentümer"person" noch Eigentümer"gruppe".

Beispiel:
-r-x--w--r-- asterix gallier
>> ist eine Datei (links ist ein -)
>> die von Asterix gelesen und ausgeführt, nicht jedoch geändert werden darf
>> die von den "gallier"n geschrieben, nicht jedoch gelesen (oder ausgeführt) werden darf
>> und von allen anderen nur gelesen werden darf. Das beinhaltet auch ein sh script.sh: der Process sh darf die Datei durchaus lesen und interpretieren; ./script.sh funktioniert jedoch so nicht.
>>> Insbesondere, wenn asterix ein gallier sein sollte, darf er trotzdem nicht schreiben, weil ihm das w Flag fehlt.


Mit Verzeichnissen ist das unter Unixoiden ein bißchen undurchsichtig.

* Das X flag erlaubt Reingehen und Auflisten. Also cd oder ls Verzeichnis. Ohne X geht das nicht.
* Das R Flag erlaubt LESEN.
* Und das W Flag erlaubt Erstellen und Löschen von Dateien. Wenn eine Datei also W hat und das beinhaltende Verzeichnis aber nicht, dann kann die Datei bearbeitet, aber nicht gelöscht werden, und neue Dateien (allgemeiner: Verzeichniseinträge aller Art) können ebenfalls nicht erstellt werden.

Mit X darf man also cd Verzeichnis oder ls Verzeichnis.
Mit R darf man, davon unbesehen, zB cat Verzeichnis/Datei ausführen. Das gilt auch, wenn das X Flag fehlt; dann muß man aber den Namen der Datei kennen, weil man ihn ja nicht auflisten darf.
Entsprechend darf man mit X auf dem Verzeichnis und ohne R auf der Datei die Datei zwar anzeigen, aber sie nicht lesen.

Und im Gegensatz zu Windows gibt es für Unixoiden keine "Paarberechtigung": Unter Windows muß man zB lesen+ausführen haben, wenn man was ausführen will. Unter Unixoiden nicht. ABER:

- Für Scripts ist R erforderlich und X optional.
- Für Kompilate, also kompilierte C oder C++ oder sonstwas Dateien, muß X da sein und R ist optional.

Dieser Beitrag wurde von RalphS bearbeitet: 04. Mai 2017 - 07:27

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0