Stammtisch 2024-08-23: Unterschied zwischen den Versionen

Aus lugvswiki
Zur Navigation springenZur Suche springen
Zeile 25: Zeile 25:
 
----
 
----
  
=== Kleine Shelleinführung – ('''Mehr'''-Benutzer-System), Teil 8 ===
+
=== 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''  
+
# Es gibt immer einen ''User''  
* gefolgt von einer ''Gruppe''  
+
# gefolgt von einer ''Gruppe''  
* und dann noch die "others" (die anderen)  
+
# und dann noch die "others" (die anderen)  
mit zugeteilten Berechtigungen; hier am Beispiel des Ordners "Testverzeichnis", welcher im Verzeichnis '''/home/Testverzeichnis''' abgelegt ist
+
Diesen sind Berechtigungen zugeteilt, nämlich
# Zunächst wechseln wir mit dem Befehl "cd" (change directory) in das Verzeichnis '''/home/Testverzeichnis'''
+
# '''r''' = read (lesen)
<$> benutzer:~> '''cd /home/Testverzeichnis/'''
+
# '''w''' = write (schreiben / verändern)
# Nun zeigen wir die im übergeordneten Verzeichnis '''/home''' enthaltenen Verzeichnisse und deren Rechtevergabe an:
+
# '''x''' = execute (auf eine ''Datei'' bezogen: "ausführen"; auf ein ''Verzeichnis'' bezogen: Verzeichnis "betreten")
<$> benutzer:'''
 
  
holger@aelbler:/home/Testverzeichnis>
+
==== Zunächst einmal müssen wir ein Verzeichnis erstellen, auf welches alle auf dem PC / Laptop arbeitenden User (Benutzer) zugreifen sollen dürfen ====
  (Befehl "ls" --> siehe <code> '''ls --help'''</code> mit Option "la" ("L" = langes Listenformat (detaillierte Ausgabe), "A" = alles (auch versteckte Dateien werden angezeigt)
+
<$> 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 &ndash; als "Root" &ndash; 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
  drwxrwx--- 1 root users 0 27. Feb 2022 .
+
  dr-xr-xr-1 root   root    50 24. Aug 21:30 .
  dr-xr-xr-x 1 root root  50 2. Dez 2022 ..
+
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) &ndash; 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? &ndash; 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" = Typ: "Datei")
+
# '''d''' ganz am Anfang steht für ''directory'' = Typ: "Verzeichnis" (''ohne'' "d" = Typ: "Datei")
'''d'''rwxrwx---  1 root  users    0 27. Feb 2022  Testverzeichnis
+
# '''d'''rwxrwx---  1 root  users    0 27. Feb 2022  Testverzeichnis
# '''l''' steht für symbolischer Link (Verknüpfung); hier nicht "abgebildet"
+
# '''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")
 
 
Also muss man erst einmal ein Verzeichnis erstellen, auf welches alle Benutzer zugreifen dürfen:
 
<#> '''mkdir share'''
 
 
 
Nun soll das zuvor erstellte Verzeichnis ''share'' für alle User genutzt werden können:
 
sudo chown root:sambashare share
 
Root werden, change owner, root teilt die Berechtigung für sambashare und in diesem Ordner das Verzeichnis share
 
  
Und nun ist die Gruppe auf sambashare geändert, aber noch immer hat die Gruppe sambashare keine Schreibberechtigung (r-x)
 
  
Also muss noch die Berechtigung geändert werden (chmod g+w /share/) --> "U" steht für user, "G" steht für group und "O" steht für others. Das "R" steht für read, das "W" steht für write und das "X" steht für executed
 
  
 
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:

  1. Es gibt immer einen User
  2. gefolgt von einer Gruppe
  3. und dann noch die "others" (die anderen)

Diesen sind Berechtigungen zugeteilt, nämlich

  1. r = read (lesen)
  2. w = write (schreiben / verändern)
  3. 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 Gruppe root:users).
# Die Syntax root: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).

  1. 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:

  1. d ganz am Anfang steht für directory = Typ: "Verzeichnis" (ohne "d" = Typ: "Datei")
  2. drwxrwx--- 1 root users 0 27. Feb 2022 Testverzeichnis
  3. l würde dann stehen für "symbolischer Link" (Verknüpfung); hier nicht abgebildet / vorhanden
  4. 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