Folien aus einem Unixkurs, den ich gehalten habe.
Im Kurs ging es um
Allgemeines zu Unix
Text editieren mit VIM Standard-Unix-Befehle Dateisysteme
Useraccounts und Rechte Prozess- und Speicherverwaltung Shellscripting
2. Was lernen wir heute?
• Warum brauchen wir eine Rechteverwaltung?
• Authentifizierung/Autorisierung
• Was sind traditionelle Unixrechte:User und
Gruppen
• Die Dateien /etc/passwd, /etc/shadow, /etc/
groups
• symbolische/oktale Notation von UNIX-
Rechten
6. Authentifizierung
„Ich bins: Joe.“
„Passwort bitte.“
„sesamoeffnedich“
„OK. Hier ist deine Sitzung“
User
authentisiert sich
bei Server
Server
authentifiziert User
/etc/passwd
/etc/shadow
Authentifizierungs
dienst:
z.B. Kerberos
7. Autorisierung passwd/groups
• Autorisierung
• Service, der Daten über die
Nutzer bereitstellt
• lokale User stehen in der
Datei /etc/passwd
• in großen Netzwerken (wie
dem hier an der Uni) kommen
die Nutzerinformationen oft
ausVerzeichnisdiensten wie
LDAP, NIS oder NIS+ /etc/passwd
Verzeichnisdienst
LDAP /etc/groups
8. UNIX User ID
• jeder User hat eine eindeutige Nummer, die
„User IDentification Number“, „Unix ID“
oder UID
• Dateirechte sind UID zugeordnet
• root hat immer UID 0
• UID 1-100 sind reserviert
12. Hashfunktionen
• Passwörter werden nicht im Klartext gespeichert,
sondern „gehasht“.
• fmd5(„sesamoeffnedich“) =
8dc940bd2220187c767479992dc318f7
• d.h. sie sind nicht einfach lesbar.
• Hash-Funktionen: MD5, SHA, Blowfish.
• Es gibt große Tabellen mit den Hashes der
häufigsten Passwörter (Rainbow Tables)
13. Exkurs: Passwörter
• Rainbow-Tables
• berechnen Hashes für "normale"
Passwörter imVoraus
• Alles Passwörter der Länge 7 aus Gross-
und Kleinbuchstaben und Zahlen
• 64-bit Hash => 26 TB (< 3000 Euro !)
• Botnetze !
14. Exkurs: Passwörter
• Rainbow-Tables
• berechnen Hashes für "normale"
Passwörter imVoraus
• Bsp:Alle Passwörter der Länge 7 aus
Gross- und Kleinbuchstaben und Zahlen
• 64-bit Hash => 26 TB (< 3000 Euro !)
• Botnetze schaffen das in Minuten!
15. Exkurs: Passwörter
• "Salzen" von Hashes hilft gegen Rainbow Tables
• Trick: Man berechnet statt hash(Passwort)
hash(PasswortZZ) und merkt sich ZZ als
Klartext (wird an das Hash angehängt)
• Ergebnis: Die Anzahl der vorher zu
berechnenden Rainbowtables multipliziert sich
mit der Anzahl der möglichen Zufallswerte
• hilft nicht gegen Bruteforce, weil ZZ bekannt
18. UNIX Dateirechte
• jede Datei und jedesVerzeichnis ist einem
User und einer Gruppe zugeordnet
• Rechte die vergeben werden können: lesen,
schreiben, ausführen
• Die Rechte können für jede Datei separat
für den User, die Gruppe und alle anderen
vergeben werden
19. Ich gehöre dem Nutzer mit
der UID 123. Er darf mich
lesen, schreiben und
ausführen
Ich gehöre der Gruppe
mit der GID 42. Mitglieder dieser
Gruppe, dürfen mich lesen und
schreiben.
Alle anderen dürfen mich nur
lesen und sonst nix.
20. SB IB BB I Blocks SB IB BB I Blocks SB IB BB I
Inode # 2342
Zugriffsrechte
UID
GID
timestamp
size
block references
23. Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
read write execute
user x x x
group x x
others x
24. Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
read write execute
user x x x
group x
others x x
32. Ich gehöre dem Nutzer mit
der UID 123. Er darf mich
lesen, schreiben und
ausführen
Ich gehöre der Gruppe
mit der GID 42. Mitglieder dieser
Gruppe, dürfen mich lesen und
schreiben.
Alle anderen dürfen mich nur
lesen und sonst nix.
34. Oktale Notation
• Darstellung der Rechtezuweisung in Form
einer Oktal-Zahl, z.B.
-rwx-w-r-x
symbolisch
111010101
BCD
421421421
421020401
7 2 5
oktal
Poser-Skill
35. Oktale Notation
• Darstellung der Rechtezuweisung in Form
einer Oktal-Zahl, z.B.
-rw-rw-rw-
symbolisch
110110110
BCD
421421421
420420420
6 6 6
oktal
Poser-Skill
36. Oktale Notation
• Darstellung der Rechtezuweisung in Form
einer Oktal-Zahl, z.B.
-rwx
symbolisch
111
BCD
421421421
421
7 4 5
oktal
~ Nebenrechnung ~
7 div 4 = 1, Rest 3
3 div 2 = 1, Rest 1
1 div 1 = 1, Rest 0
=> 111
Poser-Skill
37. Oktale Notation
• Darstellung der Rechtezuweisung in Form
einer Oktal-Zahl, z.B.
r--
symbolisch
100
BCD
421421421
400
7 4 5
oktal
~ Nebenrechnung ~
4 div 4 = 1, Rest 0
0 div 0 = 0, Rest 0
0 div 0 = 0, Rest 0
=> 100
-rwx
111
421
Poser-Skill
38. Oktale Notation
• Darstellung der Rechtezuweisung in Form
einer Oktal-Zahl, z.B.
r-x
symbolisch
101
BCD
421421421
401
7 4 5
oktal
~ Nebenrechnung ~
5 div 4 = 1, Rest 1
1 div 2 = 0, Rest 0
1 div 1 = 1, Rest 0
=> 101
r--
100
400
-rwx
111
421
Poser-Skill
39. Oktale Notation
• Darstellung der Rechtezuweisung in Form
einer Oktal-Zahl, z.B.
--wx
symbolisch
011
BCD
421421421
021
3 2 1
oktal
~ Nebenrechnung ~
3 div 4 = 0, Rest 3
3 div 2 = 1, Rest 1
1 div 1 = 1, Rest 0
=> 011
Poser-Skill
40. Oktale Notation
• Darstellung der Rechtezuweisung in Form
einer Oktal-Zahl, z.B.
-w-
symbolisch
010
BCD
421421421
020
3 2 1
oktal
~ Nebenrechnung ~
2 div 4 = 0, Rest 2
2 div 2 =1, Rest 0
0 div 1 = 0, Rest 0
=> 010
--wx
011
021
Poser-Skill
41. Das setuid/setgid-Bit
• Programme werden normalerweise mit den
Rechten, des Users ausgeführt der es
startet.
• Programme, bei denen zusätzlich das setuid
Bit gesetzt ist, werden mit den Rechten des
Users ausgeführt, dem die Datei gehört.
• Programme bei denen zusätzlich das setgid
Bit gesetzt ist werden mit den Rechten der
Gruppe ausgeführt, der die Datei gehört.
42. Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
-rws-w-r-x
setuid
43. Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
-rwx-wsr-x
setgid
44. Das setuid/setgid-Bit
• Zugriff auf im Normalfall eingeschränkte
Komponenten, Dienste, und Dateien
• ping
• serielle und parallele Ports
• /etc/shadow (beim Ändern des Passworts
durch den User)
• ...
45. Das sticky-Bit
• Nur fürVerzeichnisse
sinnvoll
• Dateien undVerzeichnisse
in einemVerzeichnis für das
das sticky-bit gesetzt ist,
dürfen nur von den
Eigentümer gelöscht
• sinnvoll z.B. für /tmp „Jeder
darf reinschreiben, aber
nicht jeder alles lesen/
löschen“
46. Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
drwxrwxrwt
type
Verzeichnis sticky bit mit
x für others
47. Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
drwxrwxr-T
type
Verzeichnis sticky bit ohne
x für others
48. Oktale Notation
• Darstellung der Rechtezuweisung in Form
einer Oktal-Zahl, z.B.
symbolisch
100
BCD
421421421421
400
1 7 7 4
oktal
111
020
111
021
Poser-Skill
rwxrwxr-T
setuid
setgid
sticky
001
49. Befehle: useradd/adduser
• useradd <username> fügt neuen User hinzu
• adduser fügt neuen User hinzu, kümmer
sich um das Anlegen des Homes etc.
• distributionsabhängig: immer
Dokumentation lesen!