Linux/Ubuntu Basics
Terminal / Shell / Konsole öffnen mit [STRG] + [ALT] + [T]
Konsole als ROOT dauerhaft öffnen: sudo -i
ROOT-Konsole wieder verlassen: exit
Nur ein Administrator kann 'sudo' ausführen.
User "root" hat unter Ubuntu per Default kein Passwort.
Interaktive Anmeldung als root ist nicht empfohlen.
User (mit Home) erstellen: sudo useradd -m uwe
Passwort festlegen: sudo passwd uwe
User wechseln: su uwe
Falls root ein Passwort hat, zu root wechseln: su (ohne root)
Befehl als 'root' ausführen: sudo touch /etc/test
Befehl als 'benutzer' ausführen: sudo benutzer touch /etc/test (ergibt Fehler)
Konsolenkommandos
Systemupdate
sudo apt(-get) update
sudo apt(-get) upgrade
sudo reboot
sudo apt(-get) -y dist-upgrade
sudo apt(-get) -F install - repariert beschädigte Pakete
sudo pro config set apt_news=false (Werbung für Ubuntu Pro deaktivieren)
Systembereinigung
sudo apt-get autoremove - entfernt veraltete Kernel und Hilfspakete
sudo apt-get autoclean - entfernt veraltete DEB-Dateien aus der Paketquelle /var/cache/apt/archives/
sudo apt-get clean - entfernt alle DEB-Dateien aus der Paketquelle /var/cache/apt/archives/
Allgemein
ls - wie dir, ls -sh (zeigt Liste), ls -l (Langform mit Berechtigungen, Anzahl Dateien im Verzeichnis, 1=Datei, Besitzer, Gruppe, Bytes, Datum, Name), ls -a (zeigt auch versteckte Files)
lsb_release -a - zeigt Ubuntu Version
man -k <Stichwort> - zeigt alle Befehle zu einem Stichwort
nano (dateiname> - Editor (Kopieren: ALT-6, Einfügen: Strg-U)
pwd - zeigt aktuellen Datei-Pfad
ps -edaf -> listet laufende Prozesse mit ihrer ID
kill (ID) -> beendet Prozess mit ID siehe ps .edaf
top - zeigt Taskmanager (CPU, Speicher, Prozesse)
whoami - zeigt aktuellen Benutzer
tail -f /var/log/*.log - zeigt alle System-Logs
tail -f /var/log/syslog - zeigt Syslog live
crontab -l - listet alle Cronjobs des Benutzers auf
Netzwerk
ifconfig - (wie Windows IPCONFIG) zeigt Namen der Netzwerkkarten und IP-Parameter (apt install net-tools)
ip add - (wie IPConfig)
hostname -I - zeigt nur IP (mit Boardmitteln)
ping [webseite.com]
nslookup [webseite.com]
curl -v [webseite.com] - gibt http-Inhalt und Zertifikat zurück
tcpdump -i eth0 port 443 - gibt Datendump aller Verbindungen von Netzwerkkaqrte und Port (apt install tcpdump)
tcpdump -i eth0 - zeigt allen Traffic auf eth0
sudo nano /etc/netplan/00-installer-config.yaml - IP-Adresse konfigurieren mit Netplan per Terminal
sudo nano /etc/netplan/01-netcfg.yaml (Verzeichis nicht sichtbar!)
Festplatte
df -h - zeigt freien Speicherplatz der Festplatte (disk free)
du -shc * - zeigt alle Verzeichnisgrößen im aktuellen Verzeichnis incl. Summe
lsblk - listet alle Datenträger und Block Storages auf
gparted - Partition ändern (auch aus Live-System)
cd -L <Verzeichnis> - Wechsel in logisches Verzeichnis (Standard)
cd -P <Verzeichnis> - Wechsel in physisches Verzeichnis (Bsp: cd -P /bin, cd -P /home)
cp [Optionen] Quelle Ziel - copy
mv [Optionen] Quelle Ziel - move
rm -r * - löscht aktuelles Verzeichnis incl. Unterverzeichnisse (recursiv)
find / -iname "datei.log" - sucht Datei (groß oder klein geschrieben) in allen Verzeichnissen
Partiton vergrößern:
- physische HD vergrößern
- lsblk - listet aktuelle Struktur
- growpart /dev/sda 3 - (mit Leerzeichen) vergrößert das angegebene Vol. auf die freie Größe (growpart installieren)
- resize2fs -p /dev/sda3 - (ohne Leerzeichen) Dateisystem anpassen
Verzeichissystem erklärt: https://www.linux-praxis.de/spaziergang-durchs-dateisystem
Dateiberechtigungen
Ubuntu: Standardmäßig hat ein User im eigenen Home-Verzeichnis Vollzugriff und in anderen User-Verzeichnissen Lesezugriff.
Zeichen: Directory (d) oder Datei (-)
2.-4. Zeichen: rwx - User (u)
5.-7. Zeichen: rwx - Group (g)
8.-10. Zeichen: rwx - Other (o)
• rwx - read / write / execute-search
Execute bei Ordnern bedeutet: Recht zum Ordner öffnen
• Berchtigung ändern: chmod u=rwx, g=rw, o=r testfile.txt
oder: read=4, write=2, execute=1 -> alle Rechte= 7
ergibt: chmod 754 testfile.txt
• Benutzer + Gruppe ändern:
chown -R www-data:www-data /var/www/wordpress
(weist dem /wordpress -Verzeichnis recursiv(-R) den Besitzer + Gruppe "www-data" zu)
Dateimanager Nautilus mit Root-Rechten nutzen: nautilus-admin installieren
sudo apt-get install nautilus-admin
Nach Neustart gibt es "Als Systemverwalter ausführen" im Kontextmenue.
Terminal-Dateimanager MC (ähnlich Norton Commander)
apt install mc - Aufruf mit 'mc' im Terminal
SSH-Zugriff aktivieren
• ggf. feste IP einrichten
• sudo systemctl status ssh - läuft SSH?
• sudo apt install openssh-server -> SSH (Server) installieren
• sudo systemctl status ssh -> wie oben, Status überprüfen, hilfreich bei Anmeldefehlern
• sudo systemctl enable ssh -> Dienststart automatisch
• sudo systemctl start ssh -> Dienst manuell starten
• sudo ufw allow ssh -> Firewall für SSh öffnen
• sudo nano /etc/ssh/sshd_config -> sshd_config anpassen
- (LoginGraceTime 200)
- PermitRootLogin yes - erlaube Root-Login
- StrictModes yes
- Port xyz - ggf. eigenen Port definieren
• /etc/init.d/ssh restart -> Dienst neu starten
SSH-Zugriff:
• ssh root@192.168.178.50 (Windows oder Linux)
Linux merkt sich die Fingerprints jeder SSH-Verbindung.
Befindet sich unter einer schon bekannten IP ein neues, unbekanntes Gerät, schlägt die SSH-Verbindung fehl!
Abhilfe: Verzeichnis .ssh enthält 'known_hosts'. In dieser Datei Eintrag mit der o.g. IP-Adresse löschen.
Ubuntu remote bedienen:
Einstellungen -> Freigabe -> Bildschirmfreigabe aktivieren, VNC-Protokoll aktivieren, Fernsteuerung erlauben
Damit die Remote Anmeldung ohne Bestätigung vom Ubuntu-Desktop funktioniert, diese Einstellung ändern.
Achtung! Ubuntu legt für die RDP-Verbindung ein eigenes Passwort fest!
Bug in Ubuntiu 20: das Kennwort ändert sich bei jeder Anmeldung.
Lösung:
XRDP installieren.
apt update apt install xrdp
apt install xorgxrdp
sudo systemctl start xrdp // Start und Eable XRDP-Service sudo systemctl enable xrdp systemctl status xrdp // Check Status sudo ufw allow from any to any port 3389 proto tcp // open Port in Firewall
Wichtig: Die RDP-Anmeldung funktioniert nur, wenn der Nutzer lokal abgemeldet ist!
Teamviewer Host in Shell installieren
- wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
- sudo apt install ./teamviewer_amd64. deb
- teamviewer info
- teamviewer passwd xxxgeheimxxx
- teamviewer setup
Verzeichnisstruktur
- bin - Binärdateien, Programme
- dev - Devices (Tastatur, Maus, Festplatte)
- etc - Konfigurationsdateien
- home - vergl. "Users" unter Windows
- lib - Codebibliotheken, die sich andere Programme teilen
- sbin - Systemdateien
- tmp - Temporäre Dateien
- usr - Programmtools und Bibliotheken
- var - vom System verwendete Dateien
E-Mail / SendMail
Ubuntu hat per Default keinen Mailserver / MTA (Mail Transfer Agent) installiert.
• Unix E-Mail Postausgang Warteschlange: /var/spool/mqueue oder /var/mqueue
• Unix E-Mail Posteingang: /var/spool/mail/ (eine Datei je E-Mail)
- Nullmailer (am Beispiel CheckMK) Benachrichtigungen mit CheckMK 1.6 via E-Mail versenden - YouTube
Log: /var/log/mail.log - SSMTP zum Senden per SMTP Einfache sendmail Konfiguration auf UBUNTU | Gloski Consulting
- SendMail Verwendung und allgemeine Konfiguration von Sendmail unter Linux (linux-praxis.de)
Config: /etc/sendmail.cf
Shortcut erstellen (Webseite o.a.)
- "Name.desktop" Datei auf User-Schreibtisch erstellen
(nano Name.desktop) - Bsp: WEB-Link
[Desktop Entry]
Version=1.0
Name=Testlink Google
Type= Application
Exec=firefox https://www.google.com/search?q=uwe-kernchen.de&ie=UTF-8
Icon=text-html - Bsp: Programm
[Desktop Entry] Version=x.y Name=ProgramName Comment=This is my comment Exec=/home/alex/Documents/exec.sh Icon=/home/alex/Pictures/icon.png Terminal=false Type=Application Categories=Utility;Application;
- Dateieigenschaften: Ausführen als Programm
- Rechtsklick auf Verknüpfung: "Start erlauben"
- Wenn alles passt, wird der Link mit dem im Desktop Entry definierten Name angezeigt, nicht mit "Name.desktop".
- Chrome kann mit "Speichere als Shortcut" selber *.desktop Datei unter "Anwendungen" erstellen
- Lösung2 (Meta Refresh):
- erstelle Name.html auf User-Desktop
- Inhalt:
<html> <head> <meta http-equiv="refresh" content="0; url=https://askubuntu.com" /> </head> <body> </body> </html>
Sonstiges
Firefox neu installieren:apt-get install --reinstall firefox firefox-locale-de
• CIFS Dateisystem installieren:sudo apt-get install cifs-utils
• Windows CIFS-Freigabe mounten:mount -t cifs -o user=testuser //192.168.1.10/Freigabe /mnt/windows1
(Vorher Verzeichnis (mnt/windows1) mit MKDIR anlegen)
• Verzeichnis dauerhaft mounten: sudo vim /etc/fstab
- Mount-Zeile (mit Passwort) in fstab eintragen//192.168.1.10/Freigabe /mnt/windows cifs username=testuser,password=password,iocharset=utf8 0 0
Quelle: https://ekiwi-blog.de/19565/windows-freigabe-in-ubuntu-mounten-2/
Samba installieren für Windows Zugriffsudo apt-get install samba
Zugriff auf Windows Freigaben im Dateimanager:smb://[IP-Adresse]
Ubuntu Recovery
- beim Booten SHIFT oder ESC drücken führt zum GRUB Boot-Menue, "Erweiterete Optionen" wählen
(Systemübersicht mit HD-Nutzung, Pakete reparieren, Dateisystem prüfen, Root Shell) - Quellen: https://wiki.ubuntuusers.de/Recovery-Modus/
Multiboot Linux-Windows erzeugt falsche Uhrzeit
• Lösung1: Windows Zeit auf "TimeZoneIsUniversal" setzen "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation", DWORD (32-Bit) Name „RealTimeIsUniversal“ - Wert= 1
• Lösung2: Linux Zeit auf "Lokale Zeit" setzen,
im Terminal: sudo timedatectl set-local-rtc 1 --adjust-system-clock
Systemzeit in Hardware-Uhr übertragen: sudo hwclock -w
Server sicher machen, wichtige Befehle: CT 13/2016 S. 124ff.
- Prozessliste: ps ax | grep -v " \[.*\]"
- Verbindungsliste von außen: lsof -i 4 -n
- Liste aller geöffneten Dateien: lsof +L1
- System Syslog: /var/log/syslog
Siehe auch: