ForumBenutzerrechte
Juergen Schmidt Perseifen – Dienstag, 14. Juni 2005 19:02 Uhr

Ich hätte da mal wieder eine Frage, dieses Mal zu Datei-Rechten und
Home-Verzeichnissen. Wenn ich in meinem Home-Verzeichnis eine Datei
anlege, so sind standardmässig folgende Rechte gesetzt -rwxr-xr-x und root
hat wie immer alle Rechte. Nun ist es ja mein Home-Verzeichnis und ich
denke, dass da ausser root nur ich drin lesen dürfen sollte. Also setzte
ich die Rechte auf -rwx——. Das kann ich ja erreichen, indem ich unter
dem user in der Datei .bashrc die umask setze. Jetzt habe ich aber eine
Datei in meinem Home-Verzeichnis, die ich allen zugänglich machen möchte
und kopiere diese Datei nach /home/public. Wie bekomme ich nun automatisch
die Datei-Rechte z.B. auf -rwxrwxr-x gesetzt. Ich meine damit, jedes Mal,
wenn ich eine bereits bestehende Datei in ein Verzeichnis kopiere /
verschiebe, soll es automatisch die Rechte des Zielverzeichnisses
bekommen. Geht das? Und wenn ja, wie?

2 Antworten
Jens Berger – Mittwoch, 15. Juni 2005 10:21 Uhr

Eigentlich ist /home eben home und nicht public. Also wenn Du Dateien anderen usern zugänglich machen willst, lege sie doch z.B. in /usr/public ab. Wenn Du meinst, kannst Du ja vom /home darauf einen Link setzen.
Das ist zwar nicht die Antwort auf Deine Frage, aber als single-user habe ich mich damit noch nicht beschäftigen müssen wie man Rechte so speziell setzt.
Jens Berger

man-draker – Mittwoch, 15. Juni 2005 11:09 Uhr

Wenn du eine bestimmte umask gesetzt hast, gilt sie für alle folgenden Datei-Operationen. Also ist der Ablauf:

umask
cp
umask

Das würde ich mir als Skript hinterlegen.
Wie man so etwas macht, kannst du hier lesen:
http://www.tfh-berlin.de/~s17779/bash/bashscripting.html

Juergen Schmidt Perseifen – Mittwoch, 15. Juni 2005 15:01 Uhr

Danke, das ist eine ziemlich gute Idee – die werde ich später mal ausprobieren, und den Link auch. Ich hatte mir inzwischen mit folgender Variante geholfen. Für jeden User habe ich eine eigne Gruppe angelegt, in der nur dieser eine User drin ist. Dann konnte ich die umask auf 007 setzen. Dann habe ich auf dem für bestimmte User freigegebenen Verzeichnis mit chmod die Rechte auf 2770 gesetzt. Das soll (angeblich) bewirken, dass die in das Verzeichnis kopierte Datei automatisch das Recht des Zielverzeichnisses bekommt. Also eine Datei “-rw-rw—- Datei1 juergen juergen” steht im Zielverzeichnis als “-rw-rw—- Datei1 juergen netzwerk”. Das Zielverzeichnis sieht so aus “drwsrwx—” Leider ist das “s” irgendwann weg, und da geht es nicht mehr. Ich habe bisher noch nicht herausgefunden, woran das liegt.

Juergen Schmidt Perseifen – Donnerstag, 16. Juni 2005 21:32 Uhr

Ich glaube, jetzt habe ich mich selber ausgesperrt. Linux ist ja wirklich sicher :-) Also, folgende Situation: Ich habe ein Linux-Fileserver, auf dem gibt es ein paar User mit Home-Verzeichnissen, dann gibt es ein Verzeichnis Netzwerk, auf das die Mitglieder der Gruppe Netzwerk Vollzugriff haben und ein Verzeichnis Install, auf das die Gruppe Netzwerk Vollzugriff und der Rest der Welt lesenden Zugriff hat. Die Verzeichnisse Netzwerk, Install und (z.B.) /home/juergen sind per nfs (/etc/exports) und per Samba freigegeben. Der Zugriff via Samba-Client von einem Windows-PC geht tadellos, da ich mich ja beim Verbinden mit dem Linux- Server als berechtigter User authentifizieren muss. Der Zugriff von einer Linux- Workstation via ssh geht auch (aus gleichem Grund, wie bei Samba). Will ich aber z.B. die Verzeichnisse Netzwerk und Install auf meiner Linux-Workstation mounten und danach darauf zugreifen (z.B. über /mnt/netzwerk oder /mnt/install auf der lokalen WS), so geht das lesend auf der Verzeichnis install (r-x fürden Rest der Welt), nicht aber für das Verzeichnis netzwerk (— für den Rest der Welt). Also den Grund kenne ich, warum das nicht geht. Ich bin ja bei diesem Zugriff nicht als der auf dem Server eingetragene Benutzer authentifiziert und der Rest der Welt hat keine Rechte. Und jetzt kommt die Frage: Wie schaffe ich es, dass ich den Zugriff erhalte, ohne Rechte für den Rest der Welt zu vergeben. Oder anders herum gefragt, wenn ich dem Rest der Welt Rechte geben muss, wie halte ich dann die User draußen, die defenitiv nicht zugreifen sollen? War das jetzt zu kompliziert ausgedrückt?