Stammtisch 2024-08-23
23.08.2024 - 20:00 Uhr, Online-Stammtisch auf https://bbb.ch-open.ch/rooms/ulf-nm2-y26/join
wöchentlicher Online-Stammtisch
Auf dem Stammtisch Mai 2020 beschlossener wöchentlicher Stammtisch jeden Freitag ab 20:00 Uhr anstelle des monatlichen Stammtisches im realen Leben.
Anwesende
- Holger
- Plocki
- Günther
- Christoph
- Bertram
Themen
Mikrofonprobleme
Bertram hat Mikrofonprobleme; die sich erst nach dem dritten Einloggen beheben lassen. Bertrams Mikrofonpegel (also das Eingangssignal) war auf Null (0) gestellt. Aber jetzt klappt es. Günther hört "nur" zu; bei Bedarf meldet er sich per Handzeichen und schreibt dann in den Chat.
Kleine Shelleinführung – (Mehr-Benutzer-System), Teil 8
Plocki hat heute nichts vorbereiten können und "schüttelt etwas aus dem Ärmel". Von seiner Seite gibt es heute also auch keinen Link zu einem Skript.
Ziemlich zeitgleich mit dem Aufkommen von Linux wurde es möglich, mit mehreren Benutzern auf einen PC zuzugreifen (z. B. mehrere Benutzer greifen auf ein Verzeichnis zu).
Zur Rechtevergabe eines Ordner, bzw. einer Datei (und gegebenenfalls den in Unterverzeichnissen enthaltenen Daten) muss man folgendes wissen. Es gibt drei Zugriffsmöglichkeiten:
- Es gibt immer einen User; standardmäßig ist er auch der Eigentümer, weil er auch der Ersteller ist; das könnte durch den root (Administrator) natürlich geändert werden
- Weiter eine Arbeits-Gruppe; der Eigentümer, aber auch andere User können (standardmäßig, oder nachträglich) Mitglied einer Arbeits-Gruppe sein
- Und dann noch Others (die anderen); sie sind weder Eigentümer eines Verzeichnisses / einer Datei, noch zugriffsberechtigt auf eine Arbeitsgruppe (auch das kann nachträglich geändert werden).
Diesen sind Berechtigungen zugeteilt oder verwehrt, nämlich:
- r = read (lesen)
- w = write (schreiben / verändern)
- x = execute (auf eine Datei bezogen: "ausführen"; auf ein Verzeichnis bezogen: Verzeichnis "betreten")
Das sieht dann etwa so aus:
drwx------ 1 elke elke 384 22. Apr 2023 elke
Oder so:
drwx--x--- 1 holger users 3890 24. Aug 21:19 holger
Noch kurz eine Erklärung zu den "kryptischen" Zeichen in der zehnstelligen Zeichenfolge:
- Das erste Zeichen "d" steht für directory (Verzeichnis); es handelt sich also hier um ein Verzeichnis (Ordner) und nicht um eine Datei oder einen (symbolischen) Link (eine Verknüpfung); ein "l" (kleines "L") würde einen Link markieren und ein vorangestelltes "-" (Minuszeichen) steht für eine Datei (nicht ein Verzeichnis)
- dann der darauffolgende Dreierblock
rwx--x---
; er ist dem Eigentümer der Datei / des Verzeichnisses zugeteilt - der zweite Dreierblock
rwx--x---
; ist als Arbeitsgruppe für die User verfügbar, welche der Arbeitsgruppe "users" (bzw. "root") zugeteilt sind - der dritte Dreierblock
rwx--x---
; ist für "others" bestimmt (hier ohne jegliche Rechte) - Die "-" (Minuszeichen) im zweiten und dritten Block sagen aus, dass gar keine Rechte vergeben wurden
- Elke hat als Eigentümer Ihres Verzeichnisses alle Rechte
rwx------
, aber da sie nicht in der Gruppe "root" oder "users" ist, überhaupt keine Zugriffsrechte außerhalb ihrer Arbeitsgruppe "elke"; ebenso haben "others" überhaupt keinen Zugriffrwx------
. - Bei Holger sieht das schon anders aus. Er ist Mitglied in der Arbeitsgruppe "users" und kann so Verzeichnisse, welche der Arbeitsgruppe "users" angehören, betreten und – falls diese Dateien beinhalten – diese ausführen
rwx--x---
. Er kann Verzeichnisse / Dateien mit den Rechten seiner Gruppe "users" derzeit jedoch weder schreiben (verändern), noch lesen, da die derzeitigen Rechte in der Gruppe "users" nur die Markierung "x" haben.
Verzeichnis erstellen, auf das andere Nutzer zugreifen dürfen
Zunächst einmal müssen wir ein Verzeichnis erstellen, auf welches alle auf dem PC / Laptop arbeitenden User (Benutzer) zugreifen dürfen. Das geschieht mit dem Befehl mkdir.
- Wir wechseln erst mal eine Ebene höher in das Verzeichnis /home/, in welchem der Ordner erstellt werden soll:
<$> benutzer:~> cd /home/ <$> benutzer:/home> (wir befinden uns nun im übergeordneten Verzeichnis /home/)
- Nun legen wir einen neuen Ordner an, wir nennen ihn mal "Testverzeichnis"; dazu müssen wir als "root" agieren (vorangestellter Befehl "sudo"):
<#> benutzer:/home/ sudo mkdir Testverzeichnis <#> [sudo] Passwort für benutzer: (Passwort wird "blind" eingegeben) <#> benutzer:/home> (die noch vorhandenen "Root"-Rechte erlöschen automatisch nach 15 Minuten)
Wir überprüfen, ob das neue Verzeichnis angelegt wurde
<$> benutzer:/home> ls -la insgesamt 16 dr-xr-xr-x 1 root root 50 24. Aug 21:30 . drwxr-xr-x 1 root root 178 29. Mai 23:55 .. drwx------ 1 elke elke 384 22. Apr 2023 elke drwx--x--- 1 holger users 3890 24. Aug 21:19 holger drwxr-xr-x 1 root root 0 24.Aug 21:30 Testverzeichnis benutzer:/home>
So ist es. Es ist noch leer und gehört dem Benutzer "root" und ebenso der Gruppe "root" (denn es wurde vom Benutzer "root" erstellt). So kann aber weder "holger", noch "elke" darauf zugreifen ...
Root hat alle Rechte rwxr-xr-x
, innerhalb seiner Arbeitsgruppe darf "root" lesen und ausführen / betreten rwxr-xr-x
und andere Benutzer ("others") haben ebenfalls Leserechte und können ausführen / betreten, nicht aber schreiben rwxr-xr-x
.
Erläuterung zum Befehl "ls (-la)"; "ls" = list (auflisten): Die Hilfeseite, bzw. die Manpage des Befehls (Eingabe in der Konsole) klärt über den Befehl und mögliche Optionen auf:
ls --help
oderman ls
; dann Suche nach den Optionen -l und -a- "l" = langes Listenformat (detaillierte Ausgabe)
- "a" = alles, auch versteckte Dateien werden angezeigt
Ändern der Gruppenzugehörigkeit eines Verzeichnisses
Das zuvor erstellte Verzeichnis Testverzeichnis muss nun für alle User zugänglich gemacht werden; dazu ändern wir die Gruppenzugehörigkeit von "root" zu "users" mit Rootrechten (sudo):
<#> benutzer:sudo chown root:users Testverzeichnis [sudo] Passwort für holger: (Passwort wird "unsichtbar" eingegeben) benutzer:/home>
Erklärung:
- Der Befehl chown (change owner) leitet die Änderung der Gruppenzugehörigkeit von
root:root
zuroot:users
für alle Mitglieder der Gruppe "users" auf das Verzeichnis "Testverzeichnis" ein. - Die Syntax
root:users Testverzeichnis
bewirkt die Detailarbeit; sie hat die Gruppe des Ordners "Testverzeichnis" von "root" auf "users" geändert.
Der Besitzer (er ist ja auch der "Ersteller") bleibt aber "root".
Da der User "holger" schon in dieser Gruppe "users" ist, kann er nun (fast, noch nicht) auf den neuen Ordner "Testverzeichnis" zugreifen. Elke, welche bislang nur in der Gruppe "elke" ist, muss dies noch ändern.
Abfrage, ob Gruppenzugehörigkeit geändert wurde
Aber noch hat "holger", als Mitglied der Gruppe "users" keine Schreibberechtigung rwxr-xr-x
auf den Ordner "Testverzeichnis", wie unsere erneute Abfrage mit "ls -la" zeigt:
benutzer:/home> ls -la insgesamt 4 dr-xr-xr-x 4 root root 43 25. Aug 19:54 . drwxr-xr-x 1 root root 142 16. Sep 2023 .. drwx------ 1 elke elke 384 22. Apr 2023 elke drwx--x--- 32 holger users 4096 25. Aug 16:14 holger drwxr-xr-x 2 root users 6 25. Aug 19:54 Testverzeichnis benutzer:/home>
Also zum nächsten Schritt ...
Änderung der Zugriffsrechte von Verzeichnissen / Dateien
Wir ändern die Berechtigung in der Arbeitsgruppe:
<#> benutzer:/home sudo chmod g+w /Testverzeichnis/
Erklärung:
- Der Befehl chmod (change modification) ändert für einen User die Zugriffsrechte innerhalb einem Verzeichnis oder einer Datei
- Die Syntax
sudo chmod g+w /Testverzeichnis/
hat in der Gruppe ("g") das zuvor fehlende Schreibrecht ("w") hinzugefügt- Vorher:
drwxr-xr-x 1 root users 0 24. Aug 21:30 Testverzeichnis
; die Gruppe "users" kann nur lesen "r" und ausführen / betreten ("x") - Nach unserer Änderung:
drwxrwxr-x 1 root users 0 24. Aug 21:30 Testverzeichnis
hat die Gruppe "users" nun Lese- ("r"), Schreibrechte ("w") und Rechte zur Ausführung ("x") – einer im Verzeichnis befindlichen Datei, bzw. dem Betreten (des Verzeichnisses) – erhalten
- Vorher:
Kontrolle, ob Änderung der Zugriffsrechte erfolgreich
Auch hier wollen wir wieder kontrollieren, ob die Rechte nun korrekt abgeändert wurden:
<$> benutzer:/home> ls -la insgesamt 4 dr-xr-xr-x 4 root root 43 25. Aug 19:54 . drwxr-xr-x 1 root root 142 16. Sep 2023 .. drwx------ 1 elke elke 384 22. Apr 2023 elke drwx--x--- 32 holger holger 4096 25. Aug 16:14 holger drwxrwxr-x 2 root users 6 25. Aug 19:54 Testverzeichnis benutzer:/home>
Änderung der Gruppenzugehörigkeit eines Benutzers
Da der User "elke" bislang noch nicht der Gruppe "users" angehört, wollen wir das ändern; sie soll schließlich auch auf das Verzeichnis "Testverzeichnis" zugreifen können:
<#> benutzer:~> sudo usermod -aG users elke (oder auch ... usermod -a -G ...) [sudo] Passwort für root: (Passwort wird "blind" eingegeben)
Zunächst noch eine Warnung (Quelle: Wiki von ubuntuusers.de aus dem nachstehendem Link nach der Warnung)!
Achtung! Wenn man die Option -G ohne die Option -a verwendet, so wird der entsprechende User den Gruppen hinzugefügt, welche als Liste übergeben werden, und aus allen anderen entfernt! Daher muss man, falls man den User einer Gruppe hinzufügen will, ohne die anderen Gruppenzugehörigkeiten anzutasten, die Optionen -a und -G immer zusammen verwenden, da man sich ansonsten z.B. auch aus der Gruppe admin entfernen könnte (die benötigt wird, um sich Root-Rechte verschaffen zu können).
Erklärung zum Befehl usermod – Wiki ubuntuusers.de und den verwendeten Optionen:
- Mit dem Befehl "usermod" lassen sich – nur als "sudo" möglich – schon existierende Benutzerkonten bearbeiten. Die möglichen Optionen werden in der Manpage
man usermod
, bzw. der Hilfeseiteusermod --help
aufgeführt und erläutert - Die Option
usermod -a -G
bewirkt folgendes:- -a (oder: --append) = Benutzer werden zu zusätzlichen Gruppen hinzugefügt, ohne den Benutzer aus den Gruppen, auf die er schon Zugriff hat, zu entfernen; dies muss aber mit der Option -G angegeben werden (siehe Warnung oben!)
- -G (oder: --groups) = es wird eine neue Liste zusätzlicher Gruppen erstellt
Kontrolle der Gruppenzugehörigkeit eines Users
Die Gruppenzugehörigkeit eines Users können wir uns mit dem Befehl id anzeigen lassen:
benutzer:~> id elke uid=1001(elke) gid=1001(elke) Gruppen=100(users),1001(elke) ("elke" ist in den Gruppen "users" und "elke") benutzer:~>
Wunderbar! Nun können die Nutzer "holger" und "elke" gleichermaßen auf das Verzeichnis "Testverzeichnis" zugreifen!
Defaultmäßig hinterlegte Gruppen
Plocki zeigt uns noch ein wenig die Gruppen, welche standardmäßig in einer Linux-(UNIX-)Installation hinterlegt sind. Das kann jedoch je nach Distribution variieren.
Hilfreiche, informative Links zum Thema Mehr-Benutzer, bzw. Rechtevergabe, Benutzer und Gruppen
- Benutzer und Gruppen – Wiki ubuntuusers.de
- Benutzerverwaltung – Wiki ubuntuusers.de
- Rechte – Wiki ubuntuusers.de
- chmod – Wiki ubuntuusers.de
- chown – Wiki ubuntuusers.de
- usermod – Wiki ubuntuusers.de
Abfragemöglichkeiten der Systeminformationen
Holger fragt einen der Besucher nach seinem Betriebssystem, was dazu führt, dass Bertram auf den Befehl inxi verweist, welcher solche Informationen ausliest.
Um sich Informationen über das installierte Betriebssystem anzeigen zu lassen, gibt es (wie unter Linux zu erwarten) aber mehrere Möglichkeiten. Dazu eine kleine Auswahl:
- Das Programm inxi; es muss meist noch installiert werden und wird über die Konsole aufgerufen; zum Beispiel so:
inxi Fxzd
- Die Programme btop++, bzw. htop; auch sie müssen meist erst noch installiert werden und werden über die Konsole ausgeführt
- cat /proc/cpuinfo; auch dieses Programm muss in der Regel nachinstalliert werden und wird über die Konsole aufgerufen
cat /proc/cpuinfo
Sämtliche Programme greifen auf den Inhalt des Verzeichnisses /proc/ zu.
Natürlich gibt es auch grafisch zu bedienende Anwendungen wie (unter KDE-Plasma) das Tool Infozentrum, welche Leistung, Hard- und Software-Informationen sehr schön grafisch aufarbeiten. Doch auch die anderen Desktopoberflächen wie Gnome oder Cinnamon haben ihre Entsprechungen.
Die Manpageman Programmname
, bzw. die HilfeseiteProgrammname --help
liefert weitere Inforationen über Leistung und Optionen des jeweiligen über die Konsole zu startenden Programms.
Drucker, der nicht druckt, aber scannt
Plocki erwähnt beiläufig, dass er einen Tintenstrahldrucker besitzt, der inzwischen nicht mehr druckt; aber er weist im Gegensatz zum noch vorhandenem Laserdrucker eine Scanfunktion auf.
Wenn Plocki nun scannen will, nutzt er die Scanfunktion des Tintenstrahldruckers, leitet die gescannte Datei mittels selbstgebasteltem Skript dann an seinen Laserdrucker weiter (der gar nicht scannen kann) und druckt die Datei mit diesem Laserdrucker aus.
Problem gelöst! :-)
Zurück zur Übersicht