Stammtisch 2024-08-23: Unterschied zwischen den Versionen
Zeile 25: | Zeile 25: | ||
---- | ---- | ||
− | === Kleine Shelleinführung – ( | + | === Kleine Shelleinführung – (''Mehr-Benutzer-System''), Teil 8 === |
<!-- Mehrbenutzersystem, Rechteverwaltung, Rechteänderung, chmod, chown, change mod, change owner --> | <!-- Mehrbenutzersystem, Rechteverwaltung, Rechteänderung, chmod, chown, change mod, change owner --> | ||
Plocki hat heute nichts vorbereiten können und "schüttelt etwas aus dem Ärmel". | Plocki hat heute nichts vorbereiten können und "schüttelt etwas aus dem Ärmel". | ||
Zeile 31: | Zeile 31: | ||
Mit dem Aufkommen von Linux wurde es möglich mit ''mehren'' Benutzern auf einen PC zuzugreifen (z. B. mehrere Benutzer greifen auf ''ein'' Verzeichnis zu). Dazu muss man folgendes wissen: | Mit dem Aufkommen von Linux wurde es möglich mit ''mehren'' Benutzern auf einen PC zuzugreifen (z. B. mehrere Benutzer greifen auf ''ein'' Verzeichnis zu). Dazu muss man folgendes wissen: | ||
− | + | # Es gibt immer einen ''User'' | |
− | + | # gefolgt von einer ''Gruppe'' | |
− | + | # und dann noch die "others" (die anderen) | |
− | + | Diesen sind Berechtigungen zugeteilt, nämlich | |
− | # | + | # '''r''' = read (lesen) |
− | + | # '''w''' = write (schreiben / verändern) | |
− | + | # '''x''' = execute (auf eine ''Datei'' bezogen: "ausführen"; auf ein ''Verzeichnis'' bezogen: Verzeichnis "betreten") | |
− | |||
− | holger | + | ==== Zunächst einmal müssen wir ein Verzeichnis erstellen, auf welches alle auf dem PC / Laptop arbeitenden User (Benutzer) zugreifen sollen dürfen ==== |
− | + | <$> benutzer:~> '''cd /home/''' (wechselt aus dem Verzeichnis ''/home/holger/'' in das ''übergeordnete'' Verzeichnis ''/home/'') | |
+ | <$> benutzer:/home> (wir befinden uns nun im ''übergeordneten'' Verzeichnis ''/home/'') | ||
+ | |||
+ | Nun legen wir einen neuen Ordner an, nennen wir ihn "Testverzeichnis"; dazu müssen wir als "root" agieren (vorangestellter Befehl "sudo"): | ||
+ | <#> benutzer:/home/'''sudo mkdir Testverzeichnis''' (erstellt – als "Root" – das neue Verzeichnis "Testverzeichnis" unter /home/) | ||
+ | <#> [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 | 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 .. | |
− | benutzer:/home/Testverzeichnis> | + | 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 ... | ||
+ | |||
+ | ==== Ändern der ''Gruppenzugehörigkeit'' eines Verzeichnisses ==== | ||
+ | Also muss das zuvor erstellte Verzeichnis ''Testverzeichnis'' für alle User zugänglich gemacht werden; dazu ändern wir die ''Gruppenzugehörigkeit'': | ||
+ | <#> benutzer:'''sudo chown root:users Testverzeichnis''' | ||
+ | [sudo] Passwort für holger: | ||
+ | benutzer:/home> | ||
+ | |||
+ | Erklärung: | ||
+ | # Der Befehl '''chown''' (change owner) ändert den Besitzer (in unserem Beispiel der Gruppe <code>root:'''users'''</code>). | ||
+ | # Die Syntax <code>'''root:users Testverzeichnis'''</code> hat die Gruppe des Ordners "Testverzeichnis" von "root" auf "users" geändert. <br> Der Besitzer (er ist ja auch der "Ersteller") bleibt aber "root". | ||
+ | <br>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. | ||
+ | |||
+ | Nun wurde die ''Gruppenzugehörigkeit'' des Ordners "Testverzeichnis" von "root" auf "users" geändert, aber noch immer hat die Gruppe "users" keine Schreibberechtigung ('''r-x''') auf den Ordner "Testverzeichnis". | ||
+ | |||
+ | ==== Also muss noch die Berechtigung geändert werden: ==== | ||
+ | <#> benutzer:/home '''sudo chmod g+w /Testverzeichnis/''' | ||
+ | |||
+ | Erklärung: | ||
+ | Der Befehl '''chmod''' (change modification) ändert den Besitzer (in unserem Beispiel der Gruppe). | ||
+ | # Die Syntax <code>'''g+w'''</code> hat in der ''Gruppe'' ("g") das zuvor fehlende Schreibrecht ("w") hinzugefügt. <br>Vorher: <code>drwx'''r-x'''r-x 1 root users 0 24. Aug 21:30 Testverzeichnis</code>; die Gruppe "users" kann nur lesen "r" und ausführen / betreten ("x").<br>Nach unserer Änderung: <code>drwx'''rwx'''r-x 1 root users 0 24. Aug 21:30 Testverzeichnis</code> hat die Gruppe "users" nun Lese- ("r"), Schreib- ("w") und Rechte zur Ausführung (Datei), bzw. dem Betreten (Verzeichnis) erhalten. | ||
+ | |||
+ | Wir finden neben dem "root" (Administrator) – warum ist der zwei mal vorhanden? Vermutlich, weil ich noch eine alte Installation auf einer anderen Partition laufen haben, die aber nicht mehr genutzt wird? – noch die Benutzer "elke" und "holger" und den Eigentümer des "Testverzeichnisses" (wieder "Root"). "Elke" ist standardmässig ''nicht'' in der Gruppe "users"; beim Benutzer "holger" wurde das schon vor langem geändert; er ist in der Gruppe "users". | ||
+ | |||
+ | Zur Erläuterung zum Befehl "ls (-la)": | ||
+ | (Befehl '''ls''' --> siehe <code> '''ls --help'''</code> mit Option '''-la''' (oder: '''-l -a)''': | ||
+ | * "l" = langes Listenformat (detaillierte Ausgabe) | ||
+ | * "a" = alles, auch versteckte Dateien werden angezeigt | ||
+ | |||
Wir greifen nun einmal die letzte Zeile (mit dem Testverzeichnis) raus: | Wir greifen nun einmal die letzte Zeile (mit dem Testverzeichnis) raus: | ||
− | '''drwxrwx---''' 1 root users 0 27. Feb 2022 Testverzeichnis | + | '''drwxrwx---''' 1 root users 0 27. Feb 2022 Testverzeichnis''' |
+ | |||
Was bedeutet nun "drwxrwx"? Hier wird es erklärt: | Was bedeutet nun "drwxrwx"? Hier wird es erklärt: | ||
− | # '''d''' ganz am Anfang steht für ''directory'' = Typ: "Verzeichnis" (''ohne'' " | + | # '''d''' ganz am Anfang steht für ''directory'' = Typ: "Verzeichnis" (''ohne'' "d" = Typ: "Datei") |
− | + | # '''d'''rwxrwx--- 1 root users 0 27. Feb 2022 Testverzeichnis | |
− | # '''l''' | + | # '''l''' würde dann stehen für "symbolischer Link" (Verknüpfung); hier nicht abgebildet / vorhanden |
# '''rwx''' das sind die Rechte für den ''User'' (der erste Dreierblock), bzw. der zweite Dreierblock ist für die ''Gruppe'' und der dritte Dreierblock ist für ''alle anderen Benutzer'' = '''others''' | # '''rwx''' das sind die Rechte für den ''User'' (der erste Dreierblock), bzw. der zweite Dreierblock ist für die ''Gruppe'' und der dritte Dreierblock ist für ''alle anderen Benutzer'' = '''others''' | ||
− | #: '''r''' steht für ''read'' = lesen | + | #: '''r''' steht für ''read'' = (lesen) |
− | #: '''w''' steht für ''write' = schreiben | + | #: '''w''' steht für ''write' = (schreiben) |
− | #: '''x''' steht für ''execute'' = auf eine Datei bezogen: "ausführen" / auf ein Verzeichnis bezogen: Verzeichnis "betreten" | + | #: '''x''' steht für ''execute'' = (auf eine Datei bezogen: "ausführen" / auf ein Verzeichnis bezogen: Verzeichnis "betreten") |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Wir schauen uns auch ein wenig die Gruppen an, die aber je nach Linux-Distribution voneinander abweichen können | Wir schauen uns auch ein wenig die Gruppen an, die aber je nach Linux-Distribution voneinander abweichen können |
Version vom 24. August 2024, 21:38 Uhr
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 (hat offensichtlich kein Mikrofon); 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".
Mit dem Aufkommen von Linux wurde es möglich mit mehren Benutzern auf einen PC zuzugreifen (z. B. mehrere Benutzer greifen auf ein Verzeichnis zu). Dazu muss man folgendes wissen:
- Es gibt immer einen User
- gefolgt von einer Gruppe
- und dann noch die "others" (die anderen)
Diesen sind Berechtigungen zugeteilt, nämlich
- r = read (lesen)
- w = write (schreiben / verändern)
- x = execute (auf eine Datei bezogen: "ausführen"; auf ein Verzeichnis bezogen: Verzeichnis "betreten")
Zunächst einmal müssen wir ein Verzeichnis erstellen, auf welches alle auf dem PC / Laptop arbeitenden User (Benutzer) zugreifen sollen dürfen
<$> benutzer:~> cd /home/ (wechselt aus dem Verzeichnis /home/holger/ in das übergeordnete Verzeichnis /home/) <$> benutzer:/home> (wir befinden uns nun im übergeordneten Verzeichnis /home/)
Nun legen wir einen neuen Ordner an, nennen wir ihn "Testverzeichnis"; dazu müssen wir als "root" agieren (vorangestellter Befehl "sudo"):
<#> benutzer:/home/sudo mkdir Testverzeichnis (erstellt – als "Root" – das neue Verzeichnis "Testverzeichnis" unter /home/) <#> [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 ...
Ändern der Gruppenzugehörigkeit eines Verzeichnisses
Also muss das zuvor erstellte Verzeichnis Testverzeichnis für alle User zugänglich gemacht werden; dazu ändern wir die Gruppenzugehörigkeit:
<#> benutzer:sudo chown root:users Testverzeichnis [sudo] Passwort für holger: benutzer:/home>
Erklärung: # Der Befehl chown (change owner) ändert den Besitzer (in unserem Beispiel der Grupperoot:users
). # Die Syntaxroot:users Testverzeichnis
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.
Nun wurde die Gruppenzugehörigkeit des Ordners "Testverzeichnis" von "root" auf "users" geändert, aber noch immer hat die Gruppe "users" keine Schreibberechtigung (r-x) auf den Ordner "Testverzeichnis".
Also muss noch die Berechtigung geändert werden:
<#> benutzer:/home sudo chmod g+w /Testverzeichnis/
Erklärung: Der Befehl chmod (change modification) ändert den Besitzer (in unserem Beispiel der Gruppe).
- Die Syntax
g+w
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"), Schreib- ("w") und Rechte zur Ausführung (Datei), bzw. dem Betreten (Verzeichnis) erhalten.
Wir finden neben dem "root" (Administrator) – warum ist der zwei mal vorhanden? Vermutlich, weil ich noch eine alte Installation auf einer anderen Partition laufen haben, die aber nicht mehr genutzt wird? – noch die Benutzer "elke" und "holger" und den Eigentümer des "Testverzeichnisses" (wieder "Root"). "Elke" ist standardmässig nicht in der Gruppe "users"; beim Benutzer "holger" wurde das schon vor langem geändert; er ist in der Gruppe "users".
Zur Erläuterung zum Befehl "ls (-la)":
(Befehl ls --> siehe ls --help
mit Option -la (oder: -l -a):
- "l" = langes Listenformat (detaillierte Ausgabe)
- "a" = alles, auch versteckte Dateien werden angezeigt
Wir greifen nun einmal die letzte Zeile (mit dem Testverzeichnis) raus:
drwxrwx--- 1 root users 0 27. Feb 2022 Testverzeichnis
Was bedeutet nun "drwxrwx"? Hier wird es erklärt:
- d ganz am Anfang steht für directory = Typ: "Verzeichnis" (ohne "d" = Typ: "Datei")
- drwxrwx--- 1 root users 0 27. Feb 2022 Testverzeichnis
- l würde dann stehen für "symbolischer Link" (Verknüpfung); hier nicht abgebildet / vorhanden
- rwx das sind die Rechte für den User (der erste Dreierblock), bzw. der zweite Dreierblock ist für die Gruppe und der dritte Dreierblock ist für alle anderen Benutzer = others
- r steht für read = (lesen)
- w steht für write' = (schreiben)
- x steht für execute = (auf eine Datei bezogen: "ausführen" / auf ein Verzeichnis bezogen: Verzeichnis "betreten")
Wir schauen uns auch ein wenig die Gruppen an, die aber je nach Linux-Distribution voneinander abweichen können
Auch teilt Bertram kurz den inxi;
inxi -Fxzd
das Programm muss normalerweise installiert werden. Das kann man auch mit /proc auflisten lassen, z. B. mit
cd /proc/,
dann
cat /cpuinfo
Oder man bemüht das Tool "Btop", das aber noch installiert werden muss.
Alle diese Hilfprogramme (inxi, Btop, Htop) greifen auf den Inhalt des Verzeichnisses /proc/ zu.
Anzeigen lassen, in welcher Gruppe ein User ist:
id benutzer
<$> benutzer ls -la /home
Drucker, der nicht druckt, aber scannt
Plocki erwähnt beiläufig, dass er einen Tintenstrahldrucker besitzt, der nicht mehr druckt, aber noch scannen kann. Wenn er nun scannen will, nutzt er diesen Tintenstrahldrucker, leitet die gescannte Datei dann an einen Laserdrucker weiter (der gar nicht scannen kann) und druckt die Datei mit diesem Laserdrucker aus.
Problem gelöst! :-)
Zurück zur Übersicht