Hi,
weitere Informationen erhälst du auch mit man chmod.
Nein, so funktioniert das bei einem Anfänger nicht, mit einer Manpage kann der nichts anfangen ;-)
Nein, so einfach geht das nicht. Dazu musst du erstmal genauer wissen, welche Attribute eine Datei unter Linux haben kann. Die Rechte einer Datei kannst du dir mit dem Befehl ls -l anzeigen.
-rwxr-xr-- 1 johannes users 329 Apr 28 15:10 test.sh
Da der Kollege Johannes die Details schon klärte, mache ich mich mal an das Allgemeine - keine Angst, Antwort auf Deine Frage ist auch mit drin ;-)
Ich erlaube mir mal, Dein Beispiel zu nehmen Johannes, ja?
So eine Angabe aus 'ls -l' kann man in Gruppen aufteilen, Mein Trenner sei hier das kaufmännische Und, auch Ampersand genannt:"&"
-&rwx&r-x&r--&1&johannes&users&329&Apr 28 15:10&test.sh
1. Ist ein Verzeichnis 'd', ein Unix Socket 's' oder eine Datei '-'.
2. Das ist die Gruppe des Besitzers, in diesem Fall "johannes" aus der Gruppe "users". Die Reihenfolge der Symbole ist immer gleich auch bei den folgenden Gruppen:
- lesen dürfen 'r' oder nicht '-'
- Schreiben dürfen 'w' oder nicht '-'
- Ausführen dürfen mit folgenden Untersymbolen
- x bedeutet: ausführbar (rechtlich, nicht praktisch! ;-)
- s -"- : ausführbar und darf es sich aussuchen mit
welchen Rechten.
- S -"- : darf es sich aussuchen mit welchen Rechten
ist aber nicht direkt ausführbar
- t -"- : ausführbar mit "sticky-bit"
- T -"- : hat das "sticky-bit" gesetzt, ist aber nicht
direkt ausführbar.
- - -"- : nichts dergleichen.
3. Die Gruppe der Rechte für die Gruppe, in diesem Fall "users"
4. Alle anderen.
5. ist die Anzahl an Links
6. Der Name des eingetragenen Benutzers
7. Der Name der Gruppe des eingetragenen Benutzers
8. Die Größe der Datei oder bei Verzeichnissen die Menge der allozierten Blöcke (default 1024 Bytes). Muß man nicht unbedingt wissen was das ist, hat halt ebenfalls mit der Größe zu tun ;-)
9. Der Zeitstempel. Falls das mehr als 6 Monate sind oder die Zeit in der Zukunft liegt wird das Jahr angegeben.
10. Name der Datei/Verzeichnisses
Wie ich mir das hier durchlese ist das leider weniger klar, als von mir beabsichtigt, da hätte ich auch genausogut Links auf die üblichen Verdächtigen anlegen können.
Nun denn: bei Fragen einfach ... äh ... fragen ;-)
Ah, da fällt mir doch noch etwas ein: Um die Zugriffrechte auf Verzeichnisse zu beschränken, ist das _Ausführungsbit_ zuständig, also ein 'x'. Beispiel:
$ ls -lR
.:
insgesamt 1
drwxr-xr-x 2 cz users 72 Sep 6 15:06 verzeichnis-1
drwxr-xr-x 2 cz users 48 Sep 6 15:05 verzeichnis-2
./verzeichnis-1:
insgesamt 0
-rw-r--r-- 1 cz users 0 Sep 6 15:06 testfile
./verzeichnis-2:
insgesamt 0
Also zwei Verzeichnisse, das erste hat eine Datei drin (mit Länge 0, also ohne jeglichen Inhalt) Lesen und die Verzeichnisse "besuchen" darf ein jeder, schreiben nur ich ("cz" aus der Gruppe "users").
$ chmod go-rx+w,u-w verzeichnis-1
$ ls -l
insgesamt 1
drwxr--r-- 2 cz users 72 Sep 6 15:06 verzeichnis-1
drwxr-xr-x 2 cz users 48 Sep 6 15:05 verzeichnis-2
Damit habe ich also der Gruppe ('g' wie "group") "users" und allen Anderen ('o' wie "other") für das Verzeichnis "verzeichnis-1" Besuchsrechte und Leserechte entzogen dafür aber Schreibrechte zuerkannt. Dem Benutzer ('u' wie "user") werden dafür dann die Schreibrechte aberkannt. Das ist zwar ziemlicher Unsinn, aber sollte ja auch nur die Syntax (eine mögliche Syntax, es gibt noch eine andere) klären.
Es gibt übrigens auch noch das Kürzel 'a' wie "all" für "alle Rechte in allen Rechtegruppen auf einmal ändern".
$ chmod a+rwx verzeichnis-1
$ ls -l
insgesamt 1
drwxrwxrwx 2 cz users 72 Sep 6 15:06 verzeichnis-1
drwxr-xr-x 2 cz users 48 Sep 6 15:05 verzeichnis-2
so short
Christoph Zurnieden