Unixkurs 04 - Rechteverwaltung

Unix-Rechteverwaltung
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
Aufgaben
Programme
starten
Webseiten
ausliefern
Festplatten
mounten
Programme
installieren
User
anlegen
Rechner
ausschalten
Rechteverwaltung
Hierarchie
root
Aufgaben
Programme
starten
Webseiten
ausliefern
Festplatten
mounten
Programme
installieren
User
anlegen
Rechner
ausschalten
root
root
root
root
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
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
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
/etc/passwd
root:x:0:0:Herr und Meister:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:daemon:/sbin:/bin/bash
lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
tapico:x:501:100:Thomas Prizzi:/home/tapico:/bin/bash
luke:x:502:100:Lukas Himmelsgeher:/home/luke:/bin/bash
lori:x:503:100:Lori Kalmar:/home/lori:/bin/bash
grayson:*:504:100:Grayson Death Carlyle:/home/grayson:/bin/bash
nobody:x:65534:65534:nobody:/tmp:/bin/bash
login
password
UID
GID
comment
home
login
command
/etc/shadow
login
password
hash
date
tapico:9Fd4SU/BbEP52:11317:0:10000::::
expiration,
validity, etc.
Exkurs: Passwörter
• Wörterbuchattacken!
• Brute-Force
• Rainbowtables
• Kein Wort ist ein gutes Passwort, lange
Nichtworte sind gute Passwörter
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)
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 !
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!
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
Unix Groups
hiwi
student
tutor
/etc/group
dialout:*:16:root,ole,tapico,grayson
at:*:25:at
firewall:*:31:
public:*:32:
named:*:44:named
users:*:100:
greydeath:*:101:root,grayson
nogroup:*:65534:root
root:*:0:root
group
name
group
id
group
password
group
members
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
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.
SB IB BB I Blocks SB IB BB I Blocks SB IB BB I
Inode # 2342
Zugriffsrechte
UID
GID
timestamp
size
block references
read write execute
user x x x
group x x
others x
UNIX Dateirechte
Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
-rwxrw-r--
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
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
Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
-rwx-w-r-x
Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
-rwx-w-r-x
type
Datei
Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
drwx-w-r-x
type
Verzeichnis
Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
lrwx-w-r-x
type
Symlink
r w x
Datei
Inhalte
lesen
Inhalte/Rechte
verändern
ausführen
Verzeichnis
Link
r w x
Datei
Inhalte
lesen
Inhalte/Rechte
verändern
ausführen
Verzeichnis
Dateien
listen
Dateien
anlegen/
löschen
Zugriff auf die
enthaltenen
Dateien
Sym-Link
r w x
Datei
Inhalte
lesen
Inhalte/Rechte
verändern
ausführen
Verzeichnis
Dateien
listen
Dateien
anlegen/
löschen
Zugriff auf die
enthaltenen
Dateien
Sym-Link
Ziel des
Links
auslesen
Ziel des Link
ändern
Ziel des Links
ausführen
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.
Inode # 2342
-rwxrw-r--
123
42
1225817275
22
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
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
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
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
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
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
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
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.
Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
-rws-w-r-x
setuid
Symbolische Notation
• Darstellung der Rechtezuweisung in Form
einer Zeichenkette (10 Zeichen), z.B.
user group others
-rwx-wsr-x
setgid
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)
• ...
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“
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
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
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
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!
Befehle: groupadd
• groupadd <Gruppenname> -g <GID> fügt
eine neue Gruppe mit einer gegebenen
Group-ID hinzu
Befehle: chown
• chown <user> <file> ändert den
Eigentümer einer Datei. (Change Owner)
• BeiVerzeichnissen mit Unterverzeichnissen
hilft die Option „-r“ zur Rekursion:
• chown -r <user> <file>
Befehle: chgrp
• chgrp <group> <file> ändert die Gruppe
einer Datei. (Change Group)
Befehle: chmod
• ändert die Zugriffsrechte einer Datei
• Syntax
• oktal:
• chmod 666 datei.txt
• symbolisch hinzufügen/entfernen:
• chmod a+rw,g-rw datei.txt
• symbolisch setzen:
• chmod a=rw datei.txt
1 of 53

Recommended

Python Mike Müller by
Python Mike MüllerPython Mike Müller
Python Mike MüllerAberla
899 views29 slides
Node.js Security by
Node.js SecurityNode.js Security
Node.js SecuritySebastian Springer
1.9K views90 slides
Unixkurs 04 - Dateien by
Unixkurs 04 - DateienUnixkurs 04 - Dateien
Unixkurs 04 - DateienHannes Planatscher
46 views25 slides
Unixkurs 06 - Shellskripte by
Unixkurs 06 - ShellskripteUnixkurs 06 - Shellskripte
Unixkurs 06 - ShellskripteHannes Planatscher
44 views34 slides
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk by
Sicherheitsfunktionen In Aktuellen Betriebssystemen TalkSicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen TalkUdo Ornik
812 views46 slides
Introduction to the command line by
Introduction to the command lineIntroduction to the command line
Introduction to the command linesteffenbauer
833 views32 slides

More Related Content

More from Hannes Planatscher

Unixkurs 03 - Pipes by
Unixkurs 03 - PipesUnixkurs 03 - Pipes
Unixkurs 03 - PipesHannes Planatscher
46 views32 slides
Unixkurs 07 - Prozess- und Speicherverwaltung by
Unixkurs 07 - Prozess- und SpeicherverwaltungUnixkurs 07 - Prozess- und Speicherverwaltung
Unixkurs 07 - Prozess- und SpeicherverwaltungHannes Planatscher
48 views25 slides
Unixkurs 02 - VIM by
Unixkurs 02 - VIMUnixkurs 02 - VIM
Unixkurs 02 - VIMHannes Planatscher
48 views26 slides
Unixkurs 01 - Allgemeines zu Unix by
Unixkurs 01 - Allgemeines zu UnixUnixkurs 01 - Allgemeines zu Unix
Unixkurs 01 - Allgemeines zu UnixHannes Planatscher
55 views36 slides
Kombinatorische Optimierung für Immunoaffinitätsproteomik by
Kombinatorische Optimierung für ImmunoaffinitätsproteomikKombinatorische Optimierung für Immunoaffinitätsproteomik
Kombinatorische Optimierung für ImmunoaffinitätsproteomikHannes Planatscher
751 views37 slides
SCPSolver by
SCPSolverSCPSolver
SCPSolverHannes Planatscher
48.9K views20 slides

More from Hannes Planatscher(6)

Unixkurs 04 - Rechteverwaltung