|
|
(38 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| == UNIX-Zugriffsrechte == | | '''topic''' - Beschreibung |
| | == Beschreibung == |
| | ; UNIX-Zugriffsrechte |
| | Um den Zugriff auf Dateien zu regeln, können die Rechte an den Besitzer, die Gruppe und alle anderen vergeben werden. |
|
| |
|
| [[Image:Grafik2.png|right]]Um den Zugriff auf Dateien zu regeln, können die Rechte an den Besitzer, die Gruppe und alle anderen vergeben werden.
| | {|class="wikitable" |
| | |
| | |
| {| | |
| |- | | |- |
| | | <tt>'''r'''</tt> | | | | '''r''' |
| | | read (Lesen) | | | | read (Lesen) |
| |- | | |- |
| | | <tt>'''w'''</tt> | | | | '''w''' |
| | | write (Schreiben) | | | | write (Schreiben) |
| |- | | |- |
| | | <tt>'''x'''</tt> | | | | '''x''' |
| | | e'''x'''ecute (Ausführen) | | | | e'''x'''ecute (Ausführen) |
| |- | | |- |
| |} | | |} |
|
| |
|
| | | {|class="wikitable" |
| | |
| {| | |
| |- | | |- |
| | <tt>'''R'''</tt> | | | '''R''' |
| | | <tt>'''W'''</tt> | | | | '''W''' |
| | | <tt>'''X'''</tt> | | | | '''X''' |
| | | <tt>'''R'''</tt> | | | | '''R''' |
| | | <tt>'''W'''</tt> | | | | '''W''' |
| | | <tt>'''X'''</tt> | | | | '''X''' |
| | | <tt>'''R'''</tt> | | | | '''R''' |
| | | <tt>'''W'''</tt> | | | | '''W''' |
| | | <tt>'''X'''</tt> | | | | '''X''' |
| |- | | |- |
| | colspan="3" | '''u'''ser | | | colspan="3" | '''u'''ser |
| | colspan="3" | '''g'''roup | | | colspan="3" | '''g'''roup |
| | colspan="3" | '''o'''thers | | | colspan="3" | '''o'''thers |
| |- | | |- |
| |} | | |} |
| Diese können mit dem Befehl ls -l angezeigt werden.
| |
|
| |
|
| <div >> ls -l
| | ; Beispiel |
| -rw-r----- 1 dirkw privat 2374 2006-10-16 16:15 addressbook.odb</div> | | $ '''ls -l ''' |
| | -rw-r----- 1 dirkw privat 2374 2006-10-16 16:15 addressbook.odb |
|
| |
|
| Die Datei <tt>'''addressbook.odb'''</tt> wurde am 16.10.2006 um 16:15 erstellt. Sie ist 849093 Bytes groß und gehört dem Benutzer "<tt>'''dirkw'''</tt>" sowie der Gruppe "<tt>'''privat'''</tt>". Das Rechtefeld schlüsselt sich wie folgt auf: | | Die Datei '''addressbook.odb''' wurde am 16.10.2006 um 16:15 erstellt. Sie ist 849093 Bytes groß und gehört dem Benutzer "'''dirkw'''" sowie der Gruppe "'''privat'''". Das Rechtefeld schlüsselt sich wie folgt auf: |
|
| |
|
| | | {|class="wikitable" |
| {| | |
| |- | | |- |
| | | '''-''' | | | | '''-''' |
Zeile 60: |
Zeile 57: |
| | | Die Gruppe darf die Datei nur lesen | | | | Die Gruppe darf die Datei nur lesen |
| | | Alle anderen haben keinen Zugriff auf die Datei | | | | Alle anderen haben keinen Zugriff auf die Datei |
|
| |
|
| |
| |- | | |- |
| |} | | |} |
|
| |
|
| == Zugriffsrechte ändern mit chmod == | | == Zugriffsrechte ändern == |
| | | '''chmod·Modus·Dateiliste''' |
| '''chmod·Modus·Dateiliste''' | |
|
| |
|
| Einstellen der Zugriffsrechte einer Datei. Dies kann im symbolischen oder numerischen Modus durchgeführt werden. | | Einstellen der Zugriffsrechte einer Datei. Dies kann im symbolischen oder numerischen Modus durchgeführt werden. |
|
| |
|
| === Symbolischer Modus === | | === Symbolischer Modus === |
| | '''Modus''' = BereichOperandBerechtigung |
|
| |
|
| <tt>'''Modus'''</tt> = BereichOperandBerechtigung
| | {|class="wikitable" |
| | |
| | |
| {| style="border-spacing:0;margin:auto;width:17.501cm;" | |
| |- | | |- |
| | style="background-color:transparent;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | '''Bereich ''' | | | | '''Bereich ''' |
| | style="background-color:transparent;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | <tt>'''u'''</tt> (user) Eigentümer <tt>'''g'''</tt> (group) Gruppe <tt>'''o'''</tt> (others) Übrige Benutzer <tt>'''a'''</tt>(all) oder keine Angabe ändert alle Bereiche | | | | '''u''' (user) Eigentümer '''g''' (group) Gruppe '''o''' (others) Übrige Benutzer '''a'''(all) oder keine Angabe ändert alle Bereiche |
| |- | | |- |
| | style="background-color:transparent;border-top:none;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | '''Operand ''' | | | | '''Operand ''' |
| | style="background-color:transparent;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | <tt>'''+'''</tt> Recht hinzufügen <tt>'''-'''</tt> Recht wegnehmen <tt>'''<nowiki>=</nowiki>'''</tt> Setzt neue Rechte und löscht alle bisherigen | | | | '''+''' Recht hinzufügen '''-''' Recht wegnehmen '''=''' Setzt neue Rechte und löscht alle bisherigen |
| |- | | |- |
| | style="background-color:transparent;border-top:none;border-bottom:2.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | '''Berechtigung ''' | | | | '''Berechtigung ''' |
| | style="background-color:transparent;border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | <tt>'''r'''</tt> Read <tt>'''w'''</tt> Write <tt>'''x'''</tt> eXecute | | | | '''r''' Read '''w''' Write '''x''' eXecute |
|
| |
|
| <tt>'''t'''</tt>(sTicky bit) schützt Datei oder verhindert das löschen einer Datei von Nicht-Eigentümern
| | '''t'''(sTicky bit) schützt Datei oder verhindert das löschen einer Datei von Nicht-Eigentümern |
|
| |
|
| <tt>'''s'''</tt>(Set user id) setzt Benutzer- oder Gruppen-ID bei der Ausführung
| | '''s'''(Set user id) setzt Benutzer- oder Gruppen-ID bei der Ausführung |
| |- | | |- |
| |} | | |} |
| '''Beispiele'''
| |
|
| |
|
| |
|
| {| style="border-spacing:0;margin:auto;width:17.501cm;" | | ; Beispiele |
| | {|class="wikitable" |
| |- | | |- |
| | style="background-color:transparent;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | <tt>'''chmod·+x·datei'''</tt> | | | | '''chmod·+x·datei''' |
| | style="background-color:transparent;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | Ausführungsrecht für alle hinzufügen | | | | Ausführungsrecht für alle hinzufügen |
| |- | | |- |
| | style="background-color:transparent;border-top:none;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | <tt>'''chmod·go-w·datei'''</tt> | | | | '''chmod·go-w·datei''' |
| | style="background-color:transparent;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | Schreibrecht nur noch für User | | | | Schreibrecht nur noch für User |
| |- | | |- |
| | style="background-color:transparent;border-top:none;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | <tt>'''chmod·g+rwx·datei'''</tt> | | | | '''chmod·g+rwx·datei''' |
| | style="background-color:transparent;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | Volle Rechte für Gruppe | | | | Volle Rechte für Gruppe |
| |- | | |- |
| | style="background-color:transparent;border-top:none;border-bottom:2.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | <tt>'''chmod·ugo-rwx·datei'''</tt> | | | | '''chmod·ugo-rwx·datei''' |
| | style="background-color:transparent;border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0.3cm;padding-right:0.3cm;" | Allen alle Rechte entziehen | | | | Allen alle Rechte entziehen |
| |- | | |- |
| |} | | |} |
| | |
| Kombinationen mit verschiedenen Zugriffsrechten für verschiedene Rollen können kommagetrennt angegeben werden: | | Kombinationen mit verschiedenen Zugriffsrechten für verschiedene Rollen können kommagetrennt angegeben werden: |
| | | $ '''chmod '''u=rw,g=rw,o=r ktoNr |
| $ '''chmod '''u=rw,g=rw,o=r ktoNr | |
| $ ls -l | | $ ls -l |
| -rw-rw-r-- 1 anna users 9 18. Okt 13:20 ktoNr | | -rw-rw-r-- 1 anna users 9 18. Okt 13:20 ktoNr |
|
| |
|
| === Numerischer Modus === | | === Numerischer Modus === |
| | Systemintern werden die Zugriffsrechte numerisch verwaltet |
| | * Diese Methode kann auch zum Setzen der Rechte verwendet werden |
| | * Die erste Ziffer bezeichnet die Schutzbit, die zweite Rechte des Eigentümers, die dritte die Gruppenrechte und vierte Ziffer die Rechte aller anderen Benutzer. |
|
| |
|
| | | Die Zahl errechnet sich durch addieren folgender Okalwerte |
| {| style="border-spacing:0;margin:auto;width:17.501cm;" | | {|class="wikitable" |
| |- | | |- |
| || Systemintern werden die Zugriffsrechte numerisch verwaltet. | | | | SUID |
| | | | | SGID |
| Diese Methode kann auch zum Setzen der Rechte verwendet werden. Die erste Ziffer Bezeichnet die Schutzbit, die zweite Rechte des Eigentümers, die dritte die Gruppenrechte und vierte Ziffer die Rechte aller anderen Benutzer.
| | | | STI |
| | | | | R |
| [[Image:Grafik1.png]]
| | | | W |
| | | | | X |
| Die Zahl errechnet sich durch addieren folgender Okalwerte:
| | | | R |
| | | | | W |
| || [[Image:Grafik5.png|right]] | | | | X |
| | | | | R |
| | | | | W |
| | | | X |
| |- | | |- |
| |} | | | | '''4''' |
| | | | | '''2''' |
| {| style="border-spacing:0;margin:auto;width:17.501cm;"
| | | | '''1''' |
| | | | '''4''' |
| | | | '''2''' |
| | | | '''1''' |
| | | | '''4''' |
| | | | '''2''' |
| | | | '''1''' |
| | | | '''4''' |
| | | | '''2''' |
| | | | '''1''' |
| |- | | |- |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>SUID</tt>
| | | colspan="3" | special rights |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>SGID</tt>
| | | colspan="3" | User |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>STI</tt>
| | | colspan="3" | Group |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>R</tt>
| | | colspan="3" | Others |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>W</tt>
| |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>X</tt>
| |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>R</tt>
| |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>W</tt>
| |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>X</tt>
| |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>R</tt>
| |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>W</tt>
| |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | <tt>X</tt>
| |
| |-
| |
| | align=center style="background-color:#cccccc;border-top:none;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''4'''
| |
| | align=center style="background-color:#cccccc;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''2'''
| |
| | align=center style="background-color:#cccccc;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''1'''
| |
| | align=center style="border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''4'''
| |
| | align=center style="border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''2'''
| |
| | align=center style="border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''1'''
| |
| | align=center style="background-color:#cccccc;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''4'''
| |
| | align=center style="background-color:#cccccc;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''2'''
| |
| | align=center style="background-color:#cccccc;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''1'''
| |
| | align=center style="border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''4'''
| |
| | align=center style="border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''2'''
| |
| | align=center style="border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | '''1'''
| |
| |-
| |
| | colspan="3" align=center style="background-color:#cccccc;border-top:none;border-bottom:2.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | special rights | |
| | colspan="3" align=center style="border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | User | |
| | colspan="3" align=center style="background-color:#cccccc;border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | Group | |
| | colspan="3" align=center style="border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.25cm;padding-right:0.25cm;" | Others | |
| |- | | |- |
| |} | | |} |
| | |
| '''Beispiel''' | | '''Beispiel''' |
| | '''chmod 777·datei ''' |
| | '''rwx rwx rwx''' |
|
| |
|
| | '''chmod 750 ''' |
| | '''rwx r-x ---''' |
|
| |
|
| {| align="center" style="border-spacing:0;width:17.501cm;"
| | '''chmod 1750 ''' |
| |-
| | '''rwx r-w --t |
| | style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''chmod 777·datei </tt>'''
| |
| | style="background-color:transparent;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''rwx rwx rwx'''</tt>
| |
| |-
| |
| | style="background-color:#cccccc;border-top:none;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''chmod 750 </tt>'''
| |
| | style="background-color:transparent;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''rwx r-x ---'''</tt>
| |
| |-
| |
| | style="background-color:#cccccc;border-top:none;border-bottom:2.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''chmod 1750 </tt>'''
| |
| | style="background-color:transparent;border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''rwx r-w --t'''</tt>
| |
| | |
| | |
| |-
| |
| |}
| |
|
| |
|
| == Special Rights == | | == Special Rights == |
| | | ; Um den Zugriff noch genauer zu regeln, gibt es drei weiter Schutzbit |
| <div style="margin-left:1.501cm;margin-right:0cm;">Um den Zugriff noch genauer zu regeln, gibt es drei weiter Schutzbit:</div>
| | {|class="wikitable" |
| | |
| | |
| {| align="center" style="border-spacing:0;width:17.501cm;" | |
| |- | | |- |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''SUID'''</tt> | | | | '''SUID''' |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''SGID'''</tt> | | | | '''SGID''' |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''STI'''</tt> | | | | '''STI''' |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''R'''</tt> | | | | '''R''' |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''W'''</tt> | | | | '''W''' |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''X'''</tt> | | | | '''X''' |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''R'''</tt> | | | | '''R''' |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''W'''</tt> | | | | '''W''' |
| | align=center style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''X'''</tt> | | | | '''X''' |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''R'''</tt> | | | | '''R''' |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''W'''</tt> | | | | '''W''' |
| | align=center style="border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | <tt>'''X'''</tt> | | | | '''X''' |
| |- | | |- |
| | colspan="3" align=center style="background-color:#cccccc;border-top:none;border-bottom:2.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | '''special rights''' | | | colspan="3" | '''special rights''' |
| | colspan="3" align=center style="border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | '''User''' | | | colspan="3" | '''User''' |
| | colspan="3" align=center style="background-color:#cccccc;border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | '''Group''' | | | colspan="3" | '''Group''' |
| | colspan="3" align=center style="border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.101cm;padding-bottom:0.101cm;padding-left:0cm;padding-right:0cm;" | '''Others''' | | | colspan="3" | '''Others''' |
| |- | | |- |
| |} | | |} |
| '''Set User ID (SUID)'''
| |
|
| |
|
| Wenn das <tt>'''SUID'''</tt>-Bit (Set User ID) gesetzt ist, behält das Programm für die Dauer der Ausführung die Rechte des Programmeigentümers und nicht jene dessen, der die Programme aufruft. | | === Set User ID (SUID) === |
| | Wenn das '''SUID'''-Bit (Set User ID) gesetzt ist, behält das Programm für die Dauer der Ausführung die Rechte des Programmeigentümers und nicht jene dessen, der die Programme aufruft. |
|
| |
|
| '''Setzen''' | | ; Setzen |
| | '''chmod·u+s·datei''' |
|
| |
|
| '''chmod·u+s·datei'''
| | ; Anzeige |
| | -rwsr-xr-x 1 root shadow 80036 2004-10-02 11:08 /usr/bin/passwd |
|
| |
|
| '''Anzeige'''
| | "'''S'''" statt "'''X'''" bei den User-Rechten: |
| | |
| "<tt>'''S'''</tt>" statt "<tt>'''X'''</tt>" bei den User-Rechten: | |
| | |
| -rwsr-xr-x 1 root shadow 80036 2004-10-02 11:08 /usr/bin/passwd
| |
|
| |
|
| Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 's' angezeigt, ansonsten ein großes 'S'. | | Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 's' angezeigt, ansonsten ein großes 'S'. |
|
| |
|
| '''Beispiel'''
| | ; Beispiel |
| | | * Alle Benutzer sind in einer speziellen Datei gespeichert, die nur der Superuser ändern darf - sonst könnte ja jeder einen neuen Benutzer eintragen. |
| Alle Benutzer sind in einer speziellen Datei gespeichert, die nur der Superuser ändern darf - sonst könnte ja jeder einen neuen Benutzer eintragen. | | * Jeder Benutzer kann aber sein Passwort ändern, das auch in dieser Datei steht. Dazu muss er schreibend auf die Datei zugreifen - obwohl er dazu keine Berechtigung besitzt. |
| | | * Das Programm "'''passwd'''" gehört dem Superuser, hat das '''SUID'''-Bit gesetzt und kann so auf die User-Datei schreibend zugreifen. |
| Jeder Benutzer kann aber sein Passwort ändern, das auch in dieser Datei steht. Dazu muss er schreibend auf die Datei zugreifen - obwohl er dazu keine Berechtigung besitzt. | |
| | |
| Das Programm "<tt>'''passwd'''</tt>" gehört dem Superuser, hat das <tt>'''SUID'''</tt>-Bit gesetzt und kann so auf die User-Datei schreibend zugreifen. | |
| | |
| '''Set Group ID (SGID)'''
| |
| | |
| Wenn das <tt>'''SGID'''</tt>-Bit (Set Group ID) gesetzt ist, hat das Programm die Rechte der Gruppe, zu der es gehört. Dieses Feature wird z. B. beim Drucker-Spooling verwendet.
| |
| | |
| Bei Dateien ohne Ausführungsrecht sorgt dieses Bit dafür, dass die Datei nur von einem Prozess geöffnet werden kann.
| |
| | |
| Bei Verzeichnissen hat das <tt>'''SGID'''</tt>-Bit eine andere Aufgabe. Dateien, die in das Verzeichnis kopiert oder erstellt werden, automatisch die Gruppe des Verzeichnisses erhalten (man muss also nicht mehr explizit die Gruppe setzen, um den Mitgliedern einer Gruppe Zugriff zu ermöglichen).
| |
| | |
| '''Setzen'''
| |
| | |
| '''chmod·g+s·datei'''
| |
|
| |
|
| '''Anzeige''' | | === Set Group ID (SGID) === |
| | * Wenn das '''SGID'''-Bit (Set Group ID) gesetzt ist, hat das Programm die Rechte der Gruppe, zu der es gehört. Dieses Feature wird z. B. beim Drucker-Spooling verwendet. |
| | * Bei Dateien ohne Ausführungsrecht sorgt dieses Bit dafür, dass die Datei nur von einem Prozess geöffnet werden kann. |
| | * Bei Verzeichnissen hat das '''SGID'''-Bit eine andere Aufgabe. Dateien, die in das Verzeichnis kopiert oder erstellt werden, automatisch die Gruppe des Verzeichnisses erhalten (man muss also nicht mehr explizit die Gruppe setzen, um den Mitgliedern einer Gruppe Zugriff zu ermöglichen). |
|
| |
|
| "<tt>'''s'''</tt>" statt "<tt>'''x'''</tt>" bei den Gruppen-Rechten
| | ; Setzen |
| | $ '''chmod·g+s·datei''' |
|
| |
|
| drwxrws--- 2 tux archive 48 Nov 19 17:12 backup | | ; Anzeige |
| | drwxrws--- 2 tux archive 48 Nov 19 17:12 backup |
| | "'''s'''" statt "'''x'''" bei den Gruppen-Rechten |
|
| |
|
| Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 's' angezeigt, ansonsten ein großes 'S'. | | Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 's' angezeigt, ansonsten ein großes 'S'. |
|
| |
|
| '''STICKY Bit''' | | === STICKY Bit === |
| | * Das '''STICKY'''-Bit sollte früher den Systemdurchsatz verbessern. Programme, bei denen dieses Bit gesetzt ist, verbleiben nach dem ersten Aufruf im Speicher und starten bei den folgenden Aufrufen schneller. Heute ist das nicht mehr nötig. |
| | * Bei Verzeichnissen dient dieses Bit der Systemsicherheit. |
|
| |
|
| Das <tt>'''STICKY'''</tt>-Bit sollte früher den Systemdurchsatz verbessern. Programme, bei denen dieses Bit gesetzt ist, verbleiben nach dem ersten Aufruf im Speicher und starten bei den folgenden Aufrufen schneller. Heute ist das nicht mehr nötig.
| | Auch wenn im Verzeichnis für alle User Schreibrecht existiert (= Löschen und Anlegen von Dateien), können bei gesetztem '''Sticky'''-Bit nur Dateien gelöscht werden, die einer folgenden Bedingungen genügen: # die Datei gehört dem Benutzer, der sie löschen will |
| | |
| Bei Verzeichnissen dient dieses Bit der Systemsicherheit.
| |
| | |
| Auch wenn im Verzeichnis für alle User Schreibrecht existiert (= Löschen und Anlegen von Dateien), können bei gesetztem <tt>'''Sticky'''</tt>-Bit nur Dateien gelöscht werden, die einer folgenden Bedingungen genügen: # die Datei gehört dem Benutzer, der sie löschen will | |
| # das Verzeichnis, in dem die Datei liegt, gehört dem Benutzer | | # das Verzeichnis, in dem die Datei liegt, gehört dem Benutzer |
| # der Benutzer hat Schreibrecht für die Datei | | # der Benutzer hat Schreibrecht für die Datei |
| # der Superuser will die Datei löschen | | # der Superuser will die Datei löschen |
|
| |
|
| | ; Setzen |
| | $ '''chmod·+t·datei''' |
|
| |
|
| | ; Anzeige |
| | drwxrwxrwt 2 root root 1160 2002-11-19 17:15 /tmp |
|
| |
|
| '''Setzen'''
| | '''t'''" statt "'''x'''" bei den "Others"-Rechten |
| | |
| '''chmod·+t·datei'''
| |
| | |
| '''Anzeige'''
| |
| | |
| <tt>'''t'''</tt>" statt "<tt>'''x'''</tt>" bei den "Others"-Rechten
| |
| | |
| drwxrwxrwt 2 root root 1160 2002-11-19 17:15 /tmp
| |
|
| |
|
| Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 't' angezeigt, ansonsten ein großes 'T'. | | Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 't' angezeigt, ansonsten ein großes 'T'. |
|
| |
|
| == Vorgaben setzen mit umask == | | == Vorgaben setzen mit umask == |
| | $ '''umask''' Modus |
|
| |
|
| '''umask''' Modus
| | Das Kommando umask setzt Standardeinstellung für Zugriffsrechte für alle Dateien, die nach Aufruf von '''umask''' erzeugt werden. |
| | |
| Das Kommando umask setzt Standardeinstellung für Zugriffsrechte für alle Dateien, die nach Aufruf von <tt>'''umask'''</tt> erzeugt werden. | |
| | |
| So muss nicht jedesmal des <tt>'''chmod'''</tt>-Kommando aufrufen, wenn einen Datei erstellt wurde. Auf bestehende Dateien hat das Kommando keinen Einfluss.
| |
|
| |
|
| Der dreistellige Zahlenwert (für <tt>'''User'''</tt>, <tt>'''Group'''</tt> und <tt>'''Others'''</tt>) ist das Komplement der Angabe von <tt>'''chmod'''</tt>, d. h. hier wird festgelegt, welches Bit nicht gesetzt werden soll.
| | So muss nicht jedesmal des '''chmod'''-Kommando aufrufen, wenn einen Datei erstellt wurde. Auf bestehende Dateien hat das Kommando keinen Einfluss. |
|
| |
|
| Stellen Sie sich vor, sie ziehen den Wert des <tt>'''umask'''</tt>-Modus vom Maximalwert 777 ab. Sie erhalten dann die Zugriffsrechte.
| | Der dreistellige Zahlenwert (für '''User''', '''Group''' und '''Others''') ist das Komplement der Angabe von '''chmod''', d. h. hier wird festgelegt, welches Bit nicht gesetzt werden soll. |
|
| |
|
| '''Beispiele''' | | Stellen Sie sich vor, sie ziehen den Wert des '''umask'''-Modus vom Maximalwert 777 ab. Sie erhalten dann die Zugriffsrechte. |
|
| |
|
| | ; Beispiele |
|
| |
|
| {| align="center" style="border-spacing:0;width:17.501cm;" | | {|class="wikitable" |
| |- | | |- |
| | style="background-color:#cccccc;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''umask 022'''</tt> | | | | '''umask 022''' |
| | style="background-color:transparent;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''7 7 7<u>- 0 2 2</u><nowiki>= 7 5 5</nowiki>'''</tt> | | | | '''7 7 7<u>- 0 2 2</u>= 7 5 5''' |
| | style="background-color:transparent;border-top:2.5pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''rwx r-x r-x'''</tt> | | | | '''rwx r-x r-x''' |
| |- | | |- |
| | style="background-color:#cccccc;border-top:none;border-bottom:0.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''umask 027'''</tt> | | | | '''umask 027''' |
| | style="background-color:transparent;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''7 7 7<u>- 0 2 7</u><nowiki>= 7 5 0</nowiki>'''</tt> | | | | '''7 7 7<u>- 0 2 7</u>= 7 5 0''' |
| | style="background-color:transparent;border-top:none;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''rwx r-x ---'''</tt> | | | | '''rwx r-x ---''' |
| |- | | |- |
| | style="background-color:#cccccc;border-top:none;border-bottom:2.5pt solid #000000;border-left:2.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''umask 177'''</tt> | | | | '''umask 177''' |
| | style="background-color:transparent;border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:none;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''7 7 7<u>- 1 7 7</u><nowiki>= 6 0 0</nowiki>'''</tt> | | | | '''7 7 7<u>- 1 7 7</u>= 6 0 0''' |
| | style="background-color:transparent;border-top:none;border-bottom:2.5pt solid #000000;border-left:0.5pt solid #000000;border-right:2.5pt solid #000000;padding-top:0.15cm;padding-bottom:0.15cm;padding-left:0.349cm;padding-right:0.349cm;" | <tt>'''rw- --- ---'''</tt> | | | | '''rw- --- ---''' |
| | |
| | |
| |- | | |- |
| |} | | |} |
| == Vererbung von Gruppenrechten ==
| |
|
| |
| Wie können Dateien oder Unterverzeichnisse unterhalb eines bestimmten ext3- oder ext4-Verzeichnisses auf einem Linux-System immer mit der gleichen Gruppe und (!) immer mit den gleichen Gruppen-Rechten erzeugt werden.
| |
|
| |
| === Problemstellung ===
| |
|
| |
| Das Problem der Vererbung von GIDs und Gruppenrechten tritt z.B. immer dann auf, wenn mehrere Entwickler einer Gruppe auf einem Verzeichnis arbeiten und neu erzeugte Dateien auch allen anderen Benutzern der Entwicklergruppe mit gleichen Rechten zugänglich gemacht werden sollen. Und das, ohne dass man beim Erzeugen der neuen Dateien und Verzeichnisse spezielle Rechteänderungen über das "chmod"-Kommando vornehmen müsste.
| |
|
| |
| Offenbar ist das Thema weniger trivial, als man meinen möchte. Denn manchmal liest man in Tutorials, dass es genügen würde, das SetGID-Bit für das betroffene Directory zu setzen. Das stimmt so leider nicht - und so mancher beginnt dann mit
| |
|
| |
| \1
| |
|
| |
| zu experimentieren. Was auch nicht hilft, weil das nur einmalige - wenn auch rekursive - Änderungen im betroffenen Zweig des Dateibaums herbeiführt. Das eigentliche Ziel ist aber, die richtige Gruppenzugehörigkeit und die notwendigen Rechte (meist Schreibrechte) schon beim Erzeugen einer Datei zu erhalten.
| |
|
| |
| Liegen die Dateien auf einem Fremdrechner, so kann man eine Lösung über Samba erreichen. Wir wollen hier aber eine native Lösung für beschreiben.
| |
|
| |
| Die richtige Antwort auf dieses Problem ist eine Kombination aus ACLs und dem SetGID-Bit.
| |
|
| |
| === Vorgehen ===
| |
|
| |
| Wir nehmen zwei User eines Systems - "alpha" (uid 1001; dieser User wird der Entwicklunsgleiter) und "beta" (uid 1002). Beide seine Mitglieder der Gruppe "users" (gid 100). umask habe den Standardwert
| |
|
| |
| umask 022
| |
|
| |
| Was ist nun zu tun?
| |
|
| |
| '''Schritt 1: Anlegen einer gemeinsamen Usergruppe '''Als root: Anlegen einer neuen Gruppe "entwickler" (gid: 101) und Zuordnen der beiden User zu dieser Gruppe. (Unter Opensuse z.B. mit Hilfe von Yast; ansonsten mit "groupadd" und "usermod -A" - siehe die man-Seiten).
| |
|
| |
| '''Schritt 2: Check, ob ACLs für das Filesystem aktiviert sind'''Als root: Prüfe, ob das Filesystems, in dem das Verzeichnis für die Gruppenarbeit angelegt wird, mit der option "acl" gemounted wird. In der Datei "/etc/fstab" sollte sich dafür ein Eintrag der Form
| |
|
| |
| <div style="margin-left:0cm;margin-right:0cm;">/dev/myFileSystem /myMountPoint ext4 acl,user_xattr 1 2</div>
| |
|
| |
| finden. "myFileSystem" steht hier für das betroffene Filesystem. "/myMountPoint" steht dagegegen für das Verzeichnis, auf dem das Filesystem gemounted wird. Entscheidend ist die Option "acl".
| |
|
| |
| '''Schritt 3: Anlegen des Verzeichnisses für die gemeinsame Entwicklungsarbeit'''Als root oder Entwicklungsleiter "alpha": Anlegen des Arbeitsverzeichnisses, unter dem die gemeinsame Projektarbeit vor sich gehen soll. Z.B.:
| |
|
| |
| <div style="margin-left:0cm;margin-right:0cm;">mkdir /myMountPoint/Entwicklung </div>
| |
|
| |
| Danach Ändern der Gruppe und der Rechte
| |
|
| |
| <div style="margin-left:0cm;margin-right:0cm;">chgrp entwicklung /myMountPoint/Entwicklung
| |
| chmod 775 /myMountPoint/Entwicklung</div>
| |
|
| |
| '''Schritt 4: Setzen des SetGID-Bits'''Als Entwicklungsleiter "alpha":
| |
|
| |
| <div style="margin-left:0cm;margin-right:0cm;">chmod g+s /myMountPoint/Entwicklung</div>
| |
|
| |
| Von nun an erben alle Verzeichnisse und Dateien, die unterhalb des Verzeichnisses "/myMountPoint/Entwicklung" angelegt werden, die die Gruppenzugehörigkeit zur Gruppe "entwicklung".
| |
|
| |
| '''Schritt 5: Setzen der ACL-Maske'''Als Entwicklungsleiter "alpha":
| |
|
| |
| <div style="margin-left:0cm;margin-right:0cm;">cd /myMountPoint4
| |
|
| |
| setfacl -m m::rwx Entwicklung</div>
| |
|
| |
| Diese Maske setzt die maximal möglichen Rechte für das Verzeichnis "Entwicklung".
| |
|
| |
| '''Schritt 6: Setzen der Default-Rechte für künftige Dateien und Unterverzeichnisse'''Als Entwicklungsleiter "alpha":
| |
|
| |
| <div style="margin-left:0cm;margin-right:0cm;">cd /myMountPoint
| |
|
| |
| setfacl -dm g:entwicklung:rwx Entwicklung</div>
| |
|
| |
| '''Schritt 7: Prüfen der Rechte für neue Dateien und Unterverzeichnisse'''Als Gruppenmitglied "beta":
| |
|
| |
|
| <div style="margin-left:0cm;margin-right:0cm;">cd /myMountPoint/Entwicklung | | <noinclude> |
|
| |
| touch test
| |
| ls -l
| |
| -rw-rw-r--+ 1 beta entwicklung 0 20. Jul 20:18 test
| |
|
| |
| mkdir testdir
| |
| ls -l
| |
| drwxrwsr-x+ 2 beta entwicklung 4096 20. Jul 21:20 testdir
| |
|
| |
| touch testdir/test2
| |
| ls -l testdir
| |
| -rw-rw-r--+ 1 beta entwicklung 0 20. Jul 21:22 test2</div>
| |
|
| |
|
| === Links === | | == Anhang == |
| | === Siehe auch === |
| | {{Special:PrefixIndex/{{BASEPAGENAME}}}} |
| | ==== Links ==== |
| | ===== Weblinks ===== |
|
| |
|
| [http://wiki.ubuntuusers.de/chmod#SGID-Bit http://wiki.ubuntuusers.de/chmod#SGID-Bit][http://wiki.ubuntuusers.de/ACL#Verzeichnisse http://wiki.ubuntuusers.de/ACL#Verzeichnisse] | | [[Kategorie:Linux/Zugriffsrechte]] |
| | </noinclude> |
topic - Beschreibung
Beschreibung
- UNIX-Zugriffsrechte
Um den Zugriff auf Dateien zu regeln, können die Rechte an den Besitzer, die Gruppe und alle anderen vergeben werden.
r
|
read (Lesen)
|
w
|
write (Schreiben)
|
x
|
execute (Ausführen)
|
R
|
W
|
X
|
R
|
W
|
X
|
R
|
W
|
X
|
user
|
group
|
others
|
- Beispiel
$ ls -l
-rw-r----- 1 dirkw privat 2374 2006-10-16 16:15 addressbook.odb
Die Datei addressbook.odb wurde am 16.10.2006 um 16:15 erstellt. Sie ist 849093 Bytes groß und gehört dem Benutzer "dirkw" sowie der Gruppe "privat". Das Rechtefeld schlüsselt sich wie folgt auf:
-
|
rw-
|
r--
|
---
|
Dateityp
|
Eigentümers
|
Gruppe
|
alle Anderen
|
Es handelt sich um eine normale Datei.
|
Der Eigentümer darf die Datei lesen, ändern, aber nicht ausführen
|
Die Gruppe darf die Datei nur lesen
|
Alle anderen haben keinen Zugriff auf die Datei
|
Zugriffsrechte ändern
chmod·Modus·Dateiliste
Einstellen der Zugriffsrechte einer Datei. Dies kann im symbolischen oder numerischen Modus durchgeführt werden.
Symbolischer Modus
Modus = BereichOperandBerechtigung
Bereich
|
u (user) Eigentümer g (group) Gruppe o (others) Übrige Benutzer a(all) oder keine Angabe ändert alle Bereiche
|
Operand
|
+ Recht hinzufügen - Recht wegnehmen = Setzt neue Rechte und löscht alle bisherigen
|
Berechtigung
|
r Read w Write x eXecute
t(sTicky bit) schützt Datei oder verhindert das löschen einer Datei von Nicht-Eigentümern
s(Set user id) setzt Benutzer- oder Gruppen-ID bei der Ausführung
|
- Beispiele
chmod·+x·datei
|
Ausführungsrecht für alle hinzufügen
|
chmod·go-w·datei
|
Schreibrecht nur noch für User
|
chmod·g+rwx·datei
|
Volle Rechte für Gruppe
|
chmod·ugo-rwx·datei
|
Allen alle Rechte entziehen
|
Kombinationen mit verschiedenen Zugriffsrechten für verschiedene Rollen können kommagetrennt angegeben werden:
$ chmod u=rw,g=rw,o=r ktoNr
$ ls -l
-rw-rw-r-- 1 anna users 9 18. Okt 13:20 ktoNr
Numerischer Modus
Systemintern werden die Zugriffsrechte numerisch verwaltet
- Diese Methode kann auch zum Setzen der Rechte verwendet werden
- Die erste Ziffer bezeichnet die Schutzbit, die zweite Rechte des Eigentümers, die dritte die Gruppenrechte und vierte Ziffer die Rechte aller anderen Benutzer.
Die Zahl errechnet sich durch addieren folgender Okalwerte
SUID
|
SGID
|
STI
|
R
|
W
|
X
|
R
|
W
|
X
|
R
|
W
|
X
|
4
|
2
|
1
|
4
|
2
|
1
|
4
|
2
|
1
|
4
|
2
|
1
|
special rights
|
User
|
Group
|
Others
|
Beispiel
chmod 777·datei
rwx rwx rwx
chmod 750
rwx r-x ---
chmod 1750
rwx r-w --t
Special Rights
- Um den Zugriff noch genauer zu regeln, gibt es drei weiter Schutzbit
SUID
|
SGID
|
STI
|
R
|
W
|
X
|
R
|
W
|
X
|
R
|
W
|
X
|
special rights
|
User
|
Group
|
Others
|
Set User ID (SUID)
Wenn das SUID-Bit (Set User ID) gesetzt ist, behält das Programm für die Dauer der Ausführung die Rechte des Programmeigentümers und nicht jene dessen, der die Programme aufruft.
- Setzen
chmod·u+s·datei
- Anzeige
-rwsr-xr-x 1 root shadow 80036 2004-10-02 11:08 /usr/bin/passwd
"S" statt "X" bei den User-Rechten:
Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 's' angezeigt, ansonsten ein großes 'S'.
- Beispiel
- Alle Benutzer sind in einer speziellen Datei gespeichert, die nur der Superuser ändern darf - sonst könnte ja jeder einen neuen Benutzer eintragen.
- Jeder Benutzer kann aber sein Passwort ändern, das auch in dieser Datei steht. Dazu muss er schreibend auf die Datei zugreifen - obwohl er dazu keine Berechtigung besitzt.
- Das Programm "passwd" gehört dem Superuser, hat das SUID-Bit gesetzt und kann so auf die User-Datei schreibend zugreifen.
Set Group ID (SGID)
- Wenn das SGID-Bit (Set Group ID) gesetzt ist, hat das Programm die Rechte der Gruppe, zu der es gehört. Dieses Feature wird z. B. beim Drucker-Spooling verwendet.
- Bei Dateien ohne Ausführungsrecht sorgt dieses Bit dafür, dass die Datei nur von einem Prozess geöffnet werden kann.
- Bei Verzeichnissen hat das SGID-Bit eine andere Aufgabe. Dateien, die in das Verzeichnis kopiert oder erstellt werden, automatisch die Gruppe des Verzeichnisses erhalten (man muss also nicht mehr explizit die Gruppe setzen, um den Mitgliedern einer Gruppe Zugriff zu ermöglichen).
- Setzen
$ chmod·g+s·datei
- Anzeige
drwxrws--- 2 tux archive 48 Nov 19 17:12 backup
"s" statt "x" bei den Gruppen-Rechten
Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 's' angezeigt, ansonsten ein großes 'S'.
STICKY Bit
- Das STICKY-Bit sollte früher den Systemdurchsatz verbessern. Programme, bei denen dieses Bit gesetzt ist, verbleiben nach dem ersten Aufruf im Speicher und starten bei den folgenden Aufrufen schneller. Heute ist das nicht mehr nötig.
- Bei Verzeichnissen dient dieses Bit der Systemsicherheit.
Auch wenn im Verzeichnis für alle User Schreibrecht existiert (= Löschen und Anlegen von Dateien), können bei gesetztem Sticky-Bit nur Dateien gelöscht werden, die einer folgenden Bedingungen genügen: # die Datei gehört dem Benutzer, der sie löschen will
- das Verzeichnis, in dem die Datei liegt, gehört dem Benutzer
- der Benutzer hat Schreibrecht für die Datei
- der Superuser will die Datei löschen
- Setzen
$ chmod·+t·datei
- Anzeige
drwxrwxrwt 2 root root 1160 2002-11-19 17:15 /tmp
t" statt "x" bei den "Others"-Rechten
Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 't' angezeigt, ansonsten ein großes 'T'.
Vorgaben setzen mit umask
$ umask Modus
Das Kommando umask setzt Standardeinstellung für Zugriffsrechte für alle Dateien, die nach Aufruf von umask erzeugt werden.
So muss nicht jedesmal des chmod-Kommando aufrufen, wenn einen Datei erstellt wurde. Auf bestehende Dateien hat das Kommando keinen Einfluss.
Der dreistellige Zahlenwert (für User, Group und Others) ist das Komplement der Angabe von chmod, d. h. hier wird festgelegt, welches Bit nicht gesetzt werden soll.
Stellen Sie sich vor, sie ziehen den Wert des umask-Modus vom Maximalwert 777 ab. Sie erhalten dann die Zugriffsrechte.
- Beispiele
umask 022
|
7 7 7- 0 2 2= 7 5 5
|
rwx r-x r-x
|
umask 027
|
7 7 7- 0 2 7= 7 5 0
|
rwx r-x ---
|
umask 177
|
7 7 7- 1 7 7= 6 0 0
|
rw- --- ---
|
Anhang
Siehe auch
Links
Weblinks