class: center, middle  #Linux-Basiswissen ## Kommandozeile 2: Zugriffsrechte ### Hauke Goos-Habermann #### https://weisheit.goos-habermann.de --- ### Über mich - Entwickler des
Softwareverteilungssystems m23
- Organisator der
Kieler Open Source und Linux Tage
-
Dienstleister zu m23, Linux und Freier Software
- Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* - Wöchentlicher Livestream *"Jean und Hauke Show"* auf https://www.youtube.com/c/LinuxGuides - *"Nicht der Weisheit letzter Schluß"* mit **beruflichen** oder **privaten Projekten** auf
tube.tchncs.de/c/ndwls
und
youtube.com/@nichtderweisheit
- Benutzt die Linux-Kommandozeile gern und oft --- ### ls (List)  Mit `ls -l` könnt Ihr Euch den Inhalt eines Verzeichnisses und die Zugriffsrechte anzeigen lassen. ```bash ls -l /etc/issue # -rw-r--r-- 1 root root ... ``` Die Zugriffsrechte teilen sich in 4 Abschnitte auf: ```bash [-][rw-][r--][r--] ``` * 1 **Dateityp**: **-** (Datei), **d** (Verzeichnis), **l** (symbolischer Link) * 2-4 **Rechte** für den **Benutzer**, der die Datei erstellt hat * 5-7 **Rechte** für Benutzer in der zugehörigen **Gruppe** * 8-10 **Rechte** aller **anderen Benutzer** --- ### Zugriffsbuchstaben  Die Buchstaben geben an, **wer was** mit einer Datei oder einem Verzeichnis **machen darf**: * **r**: Leseberechtigung (Read) * **w**: Schreibberechtigung (Write) * **x**: Ausführberechtigung (Execute) bzw. Erlaubnis zum Wechseln in das Verzeichnis * **-**: Nichts davon --- ### Spezialgelagerter Sonderbuchstabe  Steht an Stelle eines **x** ein **s**, so handelt es sich um das **SUID-Bit** oder **SGID-Bit**, das dazu führt, daß ein Programm **als Datei-** oder **Gruppenbesitzer** und nicht als aktueller Benutzer ausgeführt wird. ```bash ls -l /usr/bin/sudo ``` Die SUID- und SGID-Bits **ändert** Ihr aber üblicherweise **nicht**, es sei denn, Ihr wißt genau, was Ihr tut. --- ### chmod (Change Mode)  Mit `chmod` ändert Ihr die Zugriffsrechte (Lese-, Schreib-, Ausführrechte) für Dateien und Verzeichnisse. ```bash # Ausführrechte für alle hinzufügen chmod +x test.sh # Ausführen für Besitzer ("u") hinzufügen chmod u+x test.sh # Ausführen für Gruppe ("g") hinzufügen chmod g+x test.sh # Ausführen für alle anderen ("o") chmod o+x test.sh # Ausführen für alle anderen ("o") entfernen chmod o-x test.sh ``` Mit dem ***"Zugriffsbuchstaben"*** und **+** oder **-** könnt Ihr die Rechte ändern. --- ### Zugriffszahlen  **Statt Buchstaben** zu verwenden, könnt Ihr auch die **Wertigkeit** der einzelnen Rechte verwenden und einzeln für Benutzer, Gruppe und Andere addieren: * **4**: Leseberechtigung * **2**: Schreibberechtigung * **1**: Ausführberechtigung * **0**: Nichts davon ```bash # 1 Alle Rechte für den Besitzer # 2 Lesen und Ausführen für die Gruppe # 3 Nur Lesen für alle anderen chmod 754 test.sh ``` Mit dem Parameter **-R** werden alle Unterverzeichnisse mit einbezogen. --- ### root  Für einige Aufgaben benötigt Ihr **root**-Rechte (**Administrator**enrechte). Wie Ihr von Eurem normalen Benutzer zu root zu werdet, hängt von der Distribution ab: ```bash # root werden unter Debian su - # root werden unter Ubuntu und Linux Mint sudo -i # Kommando mit root-Rechten ausführen # unter Ubuntu und Linux Mint sudo [Kommando] ``` --- ### chown (Change Owner)  Mit `chown` **ändert** Ihr den **Besitzer** und ggf. gleich auch die **Gruppe** von Dateien oder Verzeichnissen. Dafür braucht Ihr allerdings **root-Rechte**. ```bash # Als root: Besitzer wechseln mit chown [Benutzername] dateiname.txt # Besitzer und Gruppe gleichzeitig wechseln chown [Benutzer]:[Gruppe] dateiname.txt # Besitzer für (Unter-)Verzeichnis(se) und # Dateien wechseln chown -R [Benutzer] MeinVerzeichnis ``` --- ### stat (Status)  Mit `stat` erhaltet Ihr einen **detaillierten Status** über Dateien und Verzeichnissen. ```bash stat start.sh ``` Was vielleicht an der Ausgabe nicht ganz selbsterklärend ist: * **Gerät:** Major Number (zur Treiber-/ Geräteidentifikation, z.B. SATA-Disk) /Minor Number (z.B. 1. SATA-Platte) * **Größe:** Dateigröße in Bytes * **Blöcke:** Anzahl der 512-Byte-Blöcke im Dateisystem * **EA Block:** Tatsächlich belegter Speicher auf dem Medium --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de