Vorbereitung für LPI 102 i Vorbereitung für LPI 102
Vorbereitung für LPI 102 ii REVISION HISTORY NUMBER DATE DESCRIPTION NAME Montag, 12. September 2016 AP
Vorbereitung für LPI 102 iii Contents 1 Wiederholung 1 2 Topic 108.2 System logging 3 2.1 Daemons zum Mitloggen............................................... 3 2.2 Testings........................................................ 4 2.3 Loggen mit dem journald............................................... 4 3 Topic 108.4 - Drucken 5 3.1 Drei exemplarische Kommandos zum Einstieg.................................... 5 3.1.1 Kommandos aus der BSD-Welt....................................... 5 3.1.2 Kommandos aus der Linux-Welt (CUPS).................................. 5 3.2 Wichtige Werkzeuge................................................. 6 3.3 Drucker einrichten mit dem CUPS-Kommando lpadmin............................... 6
Vorbereitung für LPI 102 iv Wussten Sie schon: Gurken sind gut für die Nieren! http://www.aachener-zeitung.de/ratgeber/essen-trinken/schlanker-wasserspender-gurken-sind-gut-fuer-die-nieren-1.1387622 http://www.heilkraeuter.de/lexikon/gurke.htm http://www.bankhofer-gesundheitstipps.de/gurken-tomaten-schuetzen-krebs-bakterien.html http://www.elle.de/9-gruende-warum-gurke-gesund-ist-251512.html
Vorbereitung für LPI 102 1 / 6 Chapter 1 Wiederholung 1. Schreiben Sie ein Skript, das drei Benutzer mitsamt Passwort automatisch anlegen kann, wobei die folgenden Bedingungen gelten: A. Als Benutzernamenquelle soll eine Textdatei namens liste eingelesen werden, die pro Zeile lediglich den Loginnamen enthält. B. Das zu vergebende Passwort soll dem Loginnamen entsprechen. C. Das Passwort soll mit MD5 verschlüsselt werden, in Frage kommen dazu mkpasswd -m md5 oder alternativ openssl passwd -1. Tipp: Mit for-schleife und Kommandozeilensubstitution arbeiten. #!/bin/sh # # useradd-script echo user1 > liste echo user2 >> liste echo user3 >> liste for i in cat liste do useradd -m -s /bin/bash -p mkpasswd -m md5 $i $i done 2. Testen Sie das Skript gründlich. tux@deb8:~$ su - user1 Passwort: user1@deb8:~$ pwd /home/user1 user1@deb8:~$ exit Abgemeldet tux@deb8:~$ 3. Löschen die Benutzer einzeln, wobei auch das Heimatverzeichnis mit gelöscht werden soll. userdel -r user1 userdel: user1 Mail-Warteschlange (/var/mail/user1) nicht gefunden userdel -r user2 userdel: user2 Mail-Warteschlange (/var/mail/user2) nicht gefunden userdel -r user3
Vorbereitung für LPI 102 2 / 6 userdel: user3 Mail-Warteschlange (/var/mail/user3) nicht gefunden Alternativ: for i in cat liste ; do userdel -r $i; done 4. Erweitern Sie das Skript, so dass der Nutzer beim ersten Login gezwungen wird, sich ein eigenes Passwort zu setzen. => z.b.: passwd -e user1 Das gesamte Skript: #!/bin/sh # # useradd-script echo user1 > liste echo user2 >> liste echo user3 >> liste for i in cat liste do useradd -m -s /bin/bash -p mkpasswd -m md5 $i $i passwd -e $i done Siehe man passwd Die letzte Passwortänderung auf Null setzen (Änderung ist erloschen, abgelaufen = Passwort wurde nie geändert!) 5. Testen Sie das Skript abermals../useradd-script passwd: Passwortablauf-Informationen geändert. passwd: Passwortablauf-Informationen geändert. passwd: Passwortablauf-Informationen geändert. 6. Testen Sie aus einem einfachen Nutzerkonto heraus den ersten Login eines der neu angelegten Nutzer mit su - <LOGIN- NAME>. tux@deb8:~$ su - user1 Passwort: Sie müssen Ihr Passwort sofort ändern (von root erzwungen). Ändern des Passworts für user1. (aktuelles) UNIX-Passwort: Geben Sie ein neues UNIX-Passwort ein: Geben Sie das neue UNIX-Passwort erneut ein: user1@deb8:~$ 7. Kontrollieren Sie die letzten 5 Zeilen der Datei, in der die Passwörter gespeichert sind. Fällt Ihnen etwas in Bezug auf den eben getesteten Nutzer auf? tail -4 /etc/shadow ntp:*:17053:0:99999:7::: user1:$6$w/uqrjaw$rqzxst45r5lumhitb8jvsrlmb1chp1hlzpq00dfvo46agryihefqxsbobbp6krfr. Xlm7jWNvow/D9wnWhDhs/:17056:0:99999:7::: user2:$1$aot2y3wi$yuck8rhle.9wcdnc9mboo0:0:0:99999:7::: user3:$1$l5c7d0/n$6cjdv4hectkmb9bmcjyqb1:0:0:99999:7::: Man sieht sehr schön, dass durch das selbst gesetzte Passwort eine längere Verschlüsselung verwendet wird ($6 = SHA- 512). Ursache ist, dass jetzt PAM-Richtlinien greifen.
Vorbereitung für LPI 102 3 / 6 Chapter 2 Topic 108.2 System logging Seite 394 ff sowie http://www.pc-erfahrung.de/linux/lpi/lpi-11142.html ZIEL: Troubleshooting erleichtern, bei Ausfällen die Nachrichten auf einen anderen Server senden 2.1 Daemons zum Mitloggen klogd syslogd syslog-ng journald Es können auf einem Linuxsystem sowohl der journald wie auch ein weitere "richtiger" laufen: ps aux grep -E journal syslog grep -v grep root 163 0.0 0.3 28988 3548? Ss Sep11 0:01 /lib/systemd/systemd- journald root 605 0.0 0.2 258672 2396? Ssl Sep11 0:00 /usr/sbin/rsyslogd -n Falls der syslog-dienst nicht läuft: => systemctl start rsyslog => systemctl enable rsyslog Wie immer die Datei bei Ihre Distribution heißt, für LPI müssen wir uns /etc/syslog.conf merken! Übung: Alle Logmeldungen auf tty10 anzeigen (wie SuSE das z.b. macht) Wir arbeiten unter Debian: vi /etc/rsyslog.conf Unterhalb von # RULES # beginnt der interessante Abschnitt, hier schreiben wir hinein: *.* /dev/tty10 => systemctl restart rsyslog.service
Vorbereitung für LPI 102 4 / 6 2.2 Testings Als root im Terminal 1 (oben): => tail -f /var/log/syslog # Alternativer Dateiname /var/log/messages Als root im Terminal 2 (unten): => tail -f /var/log/auth.log Nun senden wir als einfacher Benutzer Mitteilungen ins Logbuch: => logger Hallo Welt Oder auch gern unter Angabe eines Selektors: => logger -p user.info INFO: Wir machen Pause... 2.3 Loggen mit dem journald Der verantwortliche Daemin ist systemd-journald Konfigurationsdatei: /etc/systemd/journald.conf Kommando dafür: journalctl Wichtige Optionen: Follow data Stream (wie bei tail): -f go to the End: -e (wie bei less/more/vim: G) Reverse Zeitsortierung: -r (jüngste Meldungen oben anzeigen) Meldungen von einem bestimmten Bootvorgang: -b <ZIFFER> Einschränkung des Zeitrahmens mit --since <ZEIT> und --until <ZEIT> Beispielkommandozeilen: => journalctl -u cron.service --since=yesterday => journalctl -u cron.service --since= 2016-09-12 07:00 --until= 2016-09-12 09:00 => journalctl --since "5 min ago"
Vorbereitung für LPI 102 5 / 6 Chapter 3 Topic 108.4 - Drucken Die thematische Bandbreite ist groß, die Wichtung aber ist klein: nur 2 Fragen! 3.1 Drei exemplarische Kommandos zum Einstieg 3.1.1 Kommandos aus der BSD-Welt file which lpr /usr/bin/lpr: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=4 a46c95d845de9efe792073f16ba5203767e4f04, stripped file which lpc /usr/sbin/lpc: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]= bce7b940692f432adfbffadb1b2364067f603fcc, stripped file which lpq /usr/bin/lpq: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]= eed5af3919b84fbc2594d38a43d197bdf1eca4f5, stripped 3.1.2 Kommandos aus der Linux-Welt (CUPS) file which lp /usr/bin/lp: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]= bc53aecb42728ccf10c90f7ce7efd26b5182d63f, stripped file which cupsenable /usr/sbin/cupsenable: symbolic link to cupsaccept file which lpstat /usr/bin/lpstat: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=25 a01a2d7db1ef32a80830ff33fd9bf9b7882ed3, stripped
Vorbereitung für LPI 102 6 / 6 3.2 Wichtige Werkzeuge Voraussetzung: Drucker ist bereits installiert. Clients zum Drucken von Aufträgen: lpr, lp Clients zum Verwalten: lpc, lprm, cupsreject, cupsdisable Clients zum Kontrollieren der Warteschlangen: lpq, lpstat Siehe auch das Handout zu 102... 3.3 Drucker einrichten mit dem CUPS-Kommando lpadmin Drucker löschen: => lpadmin -x HL2150 Treiber für Brother HL-2140 von http://www.openprinting.org herunterladen und bereitstellen (Unter Debian ist der Treiber Foomatic/hpijs-pcl52 leider nur in Base64-komprimierter Form in einer großen Standarddatei enthalten) => cp PCL_5e_Printer-ljet4.ppd.gz /usr/share/cups/model/ => lpadmin -p HL2150 -E -v socket://192.168.13.250:9100 -m PCL_5e_Printer-ljet4. ppd.gz => lpadmin -d HL2150