|
|
Bei der Anmeldung erhält man eine Benutzer- und Gruppennummer. Wenn ein neues Objekt im Dateisystem angelegt wird, erhält es diese als Besitzer- und Gruppennummer. Zugriff auf das Objekt wird durch die Rechte
festgelegt. Wobei dies in die Kategorien Besitzer, Besitzer-Gruppe, Rest der Welt eingeteilt ist.
Die Ausführrechte bei Katalogen bedeutet, daß man einen Suchzugriff bekommt.
Zugriffsrechte ändern: (chmod, chown, chgrp)
$ chgrp gruppe pfad... # Besitzer-Gruppe ändern. $ chown besitzer pfad... # Besitzer ändern. $ chmod +x pfad... # Ausführung erlauben. $ chmod -w pfad... # Schreiben verbieten.
Diese Änderungen darf nur der Besitzer (oder der Super-User) vornehmen. chmod akzeptiert die Rechte oktal (640 erlaubt Lesen für Besitzer und Gruppe, Schreiben für Besitzer) oder als Formel, wobei mehrere Operationen durch Komma getrennt werden:
u für Besitzer, g für Gruppe, o für Rest
mit + - = kann man Rechte hinzufügen, wegnehmen, absolut einstellen:
Mit u+s oder 4000 definiert man, daß bei Ausführung eines binären Programms temporär die Besitzernummer der Datei als effektive Benutzernummer des Prozesses verwendet wird, (setuid(3)) die den Zugriff auf Dateien regelt. Analog führt g+s oder 2000 die Gruppennummer der Datei als effektive Gruppennummer ein. Damit kann zum Beispiel ein normaler Benutzer für genau kontrollierte Operationen die Rechte des Super-Users erhalten.
Wie könnte man sonst drucken?
Analog führt +t oder 1000 dassticky-Bit ein. Dies bedeutet, falls
Wie könnte man sonst vernünftig mit einer tmp arbeiten?
Die Verwendung des sticky-Bit kann zu einer effizienteren Nutzung der Ressourcen führen.
Src ## 9 ls -ld Sticky sticky drwxr-xr-x 2 root inform 1024 Apr 23 08:55 Sticky -rwxr-xr-x 1 bischof inform 24576 Apr 23 08:50 sticky verdi Src ## 10 chmod +t Sticky verdi Src ## 11 ls -ld Sticky drwxr-xr-t 2 root inform 1024 Apr 23 08:55 Sticky verdi Src ## 12 chmod 1755 sticky verdi Src ## 13 ls -l sticky -rwxr-xr-t 1 bischof inform 24576 Apr 23 08:50 sticky
Eine Datei, viele Namen: (ln)
$ ln alteDatei neuerName # Einer Datei einen weiteren Namen geben. $ ln alteDatei... katalog # mehrere Dateien in einem Katalog $ ls -l orig -rw-r--r-- 1 bischof inform 0 Apr 16 11:04 orig $ ln orig orig.ln $ ls -li orig orig.ln 14639 -rw-r--r-- 2 bischof inform 0 Apr 16 11:04 orig 14639 -rw-r--r-- 2 bischof inform 0 Apr 16 11:04 orig.ln $ rm orig $ ls -li orig.ln 14639 -rw-r--r-- 1 bischof inform 0 Apr 16 11:04 orig.ln
Diese mehrfache Benennung ist nur im gleichen Dateisystem möglich. Bei vielen Systemen kann man symbolische Links eintragen:
$ ln -s ersatzPfad ziel # Verweis auf andere Datei eintragen.
Mehrfache Benennung von Katalogen ist nur mit symbolischen Links erlaubt. Dies kann zu Dateisystemen führen, die sehr verwirrend sind.
$ ln -s / root $ ls -l root lrwxrwxrwx 1 bischof inform 1 Apr 16 11:12 root -> / $ ls -L root | sed 1q artemis_sd0a $ cd root $ pwd /export/home/bischof/Vorlesung/Sp_97/Skript/root $ /bin/pwd /
Mir der Option -f kann der super user einen harten Link zwischen Katalogen erzwingen. Davon ist abzuraten.
Fifo: (mknod)
Es gibt unter Unix folgende Dateitypen/Geräte
Blockgeräte Magnetband, Platte Charactergeräte Platte, Terminal Datei Fifo, reguläre Dateien, Sockets, Links, symbolische Links Katalog
$ mkfifo FIFO $ ls -l FIFO prw-r--r-- 1 bischof inform 0 Apr 18 14:28 FIFO $ echo `date` > FIFO & [1] 17064 $ ls -l FIFO prw-r--r-- 1 bischof inform 0 Apr 18 14:28 FIFO $ cat FIFO Fri Apr 18 14:29:02 MET DST 1997 [1]+ Done echo `date` >FIFO $
Dies kann nicht über Rechnerkanten hinweg funktionieren, weil die Synchronisatzion innerhalb des Kerns geregelt wird.
Datei-Listing: (ls)
$ ls -option pfad... # Dateinamen und Informationen zeigen.
Es gibt sehr viele, kombinierbare Optionen, zum Beispiel:
-a auch Dateinamen mit Punkt am Anfang -d Katalog zeigen, nicht seinen Inhalt -i mit inode-Zahl -l mit langer Information -r rückwärts sortiert -R rekursiv durch Unterkataloge -s mit Größe (in 512-Byte Blöcken) -t nach Schreibzeit sortiert -ut nach Zugriffszeit sortiert
Umbenennen: (mv)
Eine Datei wird im gleichen Dateisystem durch einen Aufrufe von mv umbenannt. Andernfalls muß sie kopiert und gelöscht werden; dabei gehen aber Links verloren.
$ mv alteDatei neuerName # Einer Datei einen anderen Namen geben. $ mv alteDatei... katalog # mehrere Dateien in einem Katalog
Löschen: (rm)
$ rm datei... # Dateien löschen. $ rm -f datei... # ohne Rückfrage $ rm -i datei... # im Dialog $ rm -r pfad... # rekursiv
Wenn der letzte Link gelöscht wird, wird der Platz der Datei wieder verfügbar.
Zeitstempel aktualisieren: (touch)
$ touch pfad... # Zeitstempel neu setzen. $ touch mmddhhmmyy pfad... # explizit $ touch -c pfad... # falls nicht-existent, nicht erzeugen
touch liest und schreibt das erste Zeichen der Datei, sonst würde sich über NFS nichts ändern.
Es gibt Probleme, wenn das Dateisystem via NFS von NeXTStep auf SunOS 4.1.3 montiert wird.
SunOS mozart 4.1.3_U1 1 sun4m echo xx > to_old_to_rock SunOS mozart 4.1.3_U1 1 sun4m ls -l to_old_to_rock -rw-r--r-- 1 bischof inform 3 Apr 18 14:34 to_old_to_rock SunOS mozart 4.1.3_U1 1 sun4m touch to_old_to_rock SunOS mozart 4.1.3_U1 1 sun4m ls -l to_old_to_rock -rw-r--r-- 1 bischof inform 3 Jan 1 1970 to_old_to_rock
|
|
Last modified 03/July/97