IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Anwendungssoftware - Die Kommandos chmod und chown



Die Kommandos chmod und chown

permissions grundlage anhand von chmod und chown


Autor: Franz Schaefer (mond)
Datum: 23-01-2002, 19:29:19
Referenzen: man chmod
man chown
man groups
man su
Schwierigkeit: Anfänger
Ansichten: 5624x
Rating: Bisher keine Bewertung.

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Übersicht

heute ein sehr wichtiges thema: zugriffsrechte ("permissions"). unix ist
seit je her ein multiuser system. d.h. dass das system verschiedenen
benutzer kennt die voneinander abgeschotet sind, sich also nicht
gegenseitig datein beschreiben oder lesen koennen... etc..

das unix permissions system ist relativ einfach aufgebaut und daher auch
leicht zu verstehen:

grundlagen:

* es gibt user. der username ist gleich dem login namen.

* es gibt gruppen. jeder user kann ein oder mehreren gruppen angehoeren.
(z.b. koennte man allen usern die auf einem computer die soundcard
benuetzten duerfen der gruppe "audio" zuordnen.. )

* fuer jede datei und jedes verzeichniss ist festgelegt welchem user und
welcher gruppe sie gehoert. (und zwar immer genau EINEM user und EINER
gruppe)

* fuer jede datei ist festgelegt ob der user dem die datei gehoert diese
schreiben, lesen oder ausfuehren darf. ebenso ob mitglieder der gruppe
der diese datei gehoert die datei lesen,schreiben oder ausfuehren
duerfen. weiters kann man allen anderen die nicht dieser gruppe
angehoeren ebenfalls rechte auf die datei geben. und zwar wieder lesen,
schreiben und ausfuehren.

* fuer verzeichnisse kann man festlegen: wer die verzeichnisse lesen kann
(d.h. sieht welche datein dort drinnen sind). wer die verzeichnisse
schreiben kann (d.h. in diesem verzeichniss eigene datein anlegen).
"ausfuehren" kann man verzeichnisse nicht diese eigenschaft wird daher
fuer einen anderen zweck missbraucht: mit den "ausfuehrrechte" fuer ein
verzeichniss kann man mit einem schlag den zugriff auf alle
darunterliegenden datein sprerren.

soweit zu theorie. sehen wir uns das mal an:

ls -l /bin/cat

das -l zeigt uns auch die zugriffsrechte fuer die datein "cat". (das ist
das programm das aufgerufen wird wenn wir cat eintippen). die rechte
koennten etwa so aussehen:

-rwxr-xr-x 1 root root 9668 Mar 8 2001 /bin/cat
\ /\ /\ / | |
| | | | \_> gruppe
| | | \__> user
| | \_> others
| \__> gruppen rechte
\_> user rechte

das erste stricherl gibt an ob es eine normale datei ist (-) oder ein
zeichniss ( dann wuerde ein "d" fuer directory) dort stehen. oder eine
spezial datei (daruber lernen wir spaeter)

die naechsten 3 punke (hier rwx) geben die rechte des users an. der user
dem diese datei gehoert darf sie also r....lesen (read) und w...
schreiben (write) und auch x...ausfuehren (execute)

die gruppe der dies datei gehoert darf sie nur lesn und ausfuehren (r-x).
alle anderen ebenso nur lesen und ausfuhren (r-x).

im obigen fall gehoert die datei dem user "root" und auch einer gruppe
namens "root".

schaun wir uns mal eine datei in unserem homverzeichniss an. (wir koenne
ja z.b. bla.txt anlegen:

touch bla.txt

legt die datei bla.txt an falls sie nicht existiert. (in diesem fall mit
laenge 0)

ls -l bla.txt

-rw-r----- 1 mond users 0 Nov 27 14:55 bla.txt

hier heisst der user dieser datei "mond". die gruppe heisst "users". und
die zugriffsrechte erlauben dem user mond das lesen und schreiben und den
mitgliedern der gruppe "users" das lesen. alle anderen duerfen gar
nichts.

um den eigentuemer einer datei zu aendern gibt es den befehl "chown".
eigentuemer aendern darf aber im allgemeinen nur der root user.

chown sonne bla.txt

wuerde den eigentuemer der datei bla.txt auf "sonne" aendern. (falls es
einen user mit diesem namen am system gibt)

chown sonne.gestirne bla.txt

wuerde zusaetzlich noch die gruppe auf den namen "gestirne" aendern.
(falls es so eine gruppe auf deinem system ueberhaupt gibt)

(welche gruppen angelegt sind kannst du dir mit

less /etc/group

ansehen. (dort ist jeder gruppe eine interne gruppennummer ("groupid" oder
kurz "gid") zugeordnet.

zum aendern der zugriffsrechte dient der befehle "chmod".

bei chmod kann man entweder in einer 3stelligen oktalzahl das rwxr-xr--
muster angeben. (waere in diesem falle 754 ) aber einfacher ist folgende
verwendung des chmod befehls:

chmod u+rx bla.txt

wuerde dem user (u) schreib und ausfuehrungsrechte geben (+rx)

chmod go+w bla.txt

wuerde der gruppe (g) und allen anderen (o fuer others) ein schreibrecht
gewaehren.

chmod o-w bla.txt

wuerde allen anderen (o) die schreibrechte entziehen.

chmod ugo-x bla.txt

entzieht allen (user group und others) die ausfuehrungsrechte.

etc...etc..

legen wir jetzt ein verzeichniss an:

mkdir blabla

mit

chmod ug+rx blabla

erlauben wir dem user und der gruppe das lesen des blabla verzeichnisses
(diese leute koennen also ein "ls" in diesem verzeichniss machen.

mit

chmod o-rx blabla

sperren wir das lesen des verzeichnisses fuer alle anderen (-r) und mit
dem (-x) sperren wir auch den zugriff auf alle unterhalb des verzeichniss
liegenden datein (unabhaengig davon ob der zugriff bei diesen dateien
eventuell dort erlaubt waere)

ACHTUNG beim "w" fuer directories: jemand der das "w" recht auf ein
verzeichnis hat darf auch files in diesem verzeichniss loeschen,
unabhaengig davon ob er rechte auf die datei selbst hat.

es gibt dann noch einige sonderrechte (s und t) darueber lernen wir aber
spaeter mehr..

nuetzlich in diesem zusammehang sind auch noch die befehle:

groups

zeigt dir an in welcher oder welchen gruppen du momentan selbst bist.

su - sonne

macht dich zum user "sonne" falls es eine solche auf deinem system gibt,
vorausgesetzt du kennst das passwort dafuer.

EXERCISES:

* schau dir mit dem ls -l befehl die zugriffsrechte von verschieden datein
in deinem homeverzeichniss und in anderen verzeichissen des systems an.
versuche zu interpretieren was diese rechte bedeuten (wem gehoert die
datei? welcher gruppe gehoert die datei?) was duerfen die mitglieder der
gruppe? was darf der eigentuemer?

* lege dir in deinem homeverzeichniss ein verzeichniss und eine datei an
und vergib verschiedene zugriffsrechte mithilfe des chmod befehls an
andere. schau dir mit dem ls -l befehl an ob der chmod befehl
erfolgreich war. frage andere user ob sie die datei wirklich lesen oder
schreiben koennen so wie du es geplant hast. (wenn du selbst einen
anderen user auf dem system hast dann kannst du mit su - auf diesen user
hinwechseln.

_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06246
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1154
Comments: 0