====== New Linux Stuff ====== * putty-Alternative: https://mremoteng.org/ ===== MDM, RAID, SMART ===== * ''cat /proc/mdstst'' * ''mdadm -D /dev/md1'' * MD: [[https://www.ionos.com/help/server-cloud-infrastructure/dedicated-server-for-servers-purchased-before-102818/rescue-and-recovery/software-raid-status-monitoring-linux/|Link]] * SMART: [[https://www.thomas-krenn.com/de/wiki/Smartctl|Link]] * ''smartctl -a /dev/sda'' * **Reallocated Sectors Count:** Anzahl der Sektoren, die aufgrund von Lesefehlern neu zugeteilt(remaped) wurden. * **Spin Retry Count:** Anzahl der Versuche die benötigt wurden um die Spindel auf Betriebsgeschwindigkeit zu bringen. * **Reallocation Event Count:** Anzahl der Remaps die durchgeführt wurden (erfolgreich und nicht erfolgreich). * **Current Pending Sector Count:** Anzahl der Sektoren die auf ein Remapping warten. * **Offline_Uncorrectable:** Anzahl der nicht korrigierbaren Fehler beim Zugriff(read/write) auf Sektoren. ===== WinDirStat ===== * WizTree → dikanalyzer.com ===== Internet auf FritzBox ustellen ===== * ''ip route list'' * ''ip r'' * ''ip route delete default'' * ''ip route add default via 10.255.255.253 dev eno1'' * DNS in /etc/samba/smb.conf umschalten !!! * Service ''samba-ad-dc'' neu starten :td: **''bash''-Komplettierung einschalten** [[https://glt18-programm.linuxtage.at/system/attachments/130/original/gtl18_-_Moderne_Kommandozeilentools_upload_version.pdf|Vortragsfolien]] :yt: [[https://www.youtube.com/watch?v=OlQMXu4yCGk|Video dazu]] ===== Quick-Tipps ===== * Neueste Dateien finden: ''find . -type f -printf '%T+ %p\n' | sort -r | head -n 10'' * Dateien zuletzt geändert mit komplettem Pfad: ''find . -mtime -1 -exec ls -lahs -d {} \; | less'' * [[https://dev.yorhel.nl/ncdu|ncdu]] du-Replacement (kein deb aber tgz statisch) * [[https://the.exa.website/|exa]] ls-Replacement (kein deb) * ''tree /schnack -sh --sort=size'' (Größe anzeigen, lesbar, sortiert nach Größe) * **BESSER:** ncdu * ''date --iso-8601'' für Datierung von Dateien (''touch a-`date --iso-8601`-b.txt'') * [[https://help.ubuntu.com/lts/serverguide/network-configuration.html.en|Ubuntu Server Guide]] * ''ip a'' --> Adressen aller Interfaces * ''lshw'' --> Hardware ausgeben (''lshw -class network'') * ''lsusb'', ''lsblk'', ''lslocks'', ''lsof'' bzw. ''lsof -i''/''netstat -npl'' * ''netplan''/''netplan apply'' (nach Änderung der Konfiguration) * ''ethtool enp0s3'' (Infos zum HW-Interface) * ''ip link set dev enp0s25 up/down'' * **Firewall/''ufw''**: [[https://help.ubuntu.com/lts/serverguide/firewall.html.en|Server Guide]] * [[https://help.ubuntu.com/lts/serverguide/firewall.html.en#ip-masquerading|Masquerading/NAT]] mit ufw * [[https://help.ubuntu.com/lts/serverguide/samba.html.en|SAMBA]] * ''byobu'' statt ''tmux'' * ''nethogs'' --> Bandbreitenmessung * ''nload'' --> als Graph :) * ''iptraf'' --> **ALLES!** (Konfiguration DNS und Dienst ändern) * ''du -kh --max-depth=1'' du mit Summe der ersten Verzeichnisse * ''entr'' → überwacht Dateien und führt Programme aus (siehe man für Beispiele) * geht auch mit WSL und VS Code 😁 * ''nmtui'' → NetworkManager TUI-Tool (CLI) * ''chkservice'' → systemd-TUI-Manager * Explorer stürzt bei Sicherheit ab: https://superuser.com/questions/1459741/samba-ad-dc-windows-explorer-exe-crashes-on-security-tab-access ===== systemd ===== [[https://www.digitalocean.com/community/tutorials/systemd-essentials-working-with-services-units-and-the-journal|Allgemeine Infos zu systemd]] [[https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs|Logging in systemd]] * systemctl behandelt **units** (Dienste bzw. Dinge, die von systemd gestartet/gestoppt/verwaltet werden * ''systemctl start|stop|restart|reload schnack.service'' (auch ohne service) * ''systemctl enable|disable'' schnack.service (dto.) * ''systemctl list-units|list-unit-files [--all]'' * ''journalctl -b'' **Logging** seit dem letzten Reboot * ''journalctl -b -p err'' seit [''b'']oot mit [''p'']riotity [''err'']or * "emerg" (0), "alert" (1), **"crit" (2)**, "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7) * ''journalctl -k'' nur [''k'']ernel messages * ''systemctl status schnack'' **Status** * ''journalctl -b -u schnack'' nur den Status der [''u'']nit schnack seit boot * Edit unit-Files: siehe Link * Event loggen: ''logger -p local1.err "Hallo Welt!"'' * Nur Fehler anzeigen: ''journalctl -p err -b'' [''p'']riotity [''err'']or seit [''b'']oot (siehe ''man logger'' -> "FACILITIES AND LEVELS" * ''emerg alert crit err warning notice info debug'' * ''**lnav**'': journalctl mit Oberfläche * ''journalctl --since yesterday'' nur seit gestern (mit ''p'' sehr nützlich) * ''--no-pager'' kein less verwenden * **''journalctl -f''** wie ''tail -f'' * ''journalctl --disk-usage'' * ''journalctl --vacuum-size=1G'' Logfile auf 1GB heruntersetzen (alte Einträge löschen) * ''journalctl --vacuum-time=1years'' Logifile auf 1 Jahr heruntersetzen (alte Einträge löschen) ===== Backup-Script ===== #!/bin/bash base_dir="/home/ivo/test" year=`date +"%y"` month=`date +"%m"` day=`date +"%d"` target="${base_dir}/${year}/${month}/${day}" if [ ! -d "${target}" ]; then mkdir -p "${target}"; fi cp -a /tmp/schnack ${target} || logger "xxx backup Mist ..." && logger "vvv Backup done ..." ===== BASH-Prompt ===== * in ''~/.bashrc'' * ''root'' werden am besten mit ''sudo -s'', dann bleibt ''~'' erhalten # roter Prompt für root if [ "$LOGNAME" == "root" ] then echo "ROOT! AUFPASSEN!" PS1="\[\e[31m\]ROOT\[\e[m\]\[\e[31m\]@\[\e[m\]\[\e[31m\]\h\[\e[m\]\[\e[31m\]:\[\e[m\]\[\e[31m\]\w\[\e[m\]\[\e[31m\]>\[\e[m\] " else echo "NICHT ROOT! ALLES EASY!" PS1="\[\e[32m\]\u\[\e[m\]\[\e[32m\]@\[\e[m\]\[\e[32m\]\h\[\e[m\]\[\e[32m\]:\[\e[m\]\[\e[32m\]\w\[\e[m\]\[\e[32m\]>\[\e[m\] " fi {{:meins:rote-bash.png?nolink|}} ===== tmux ===== * ''^a + z'' maximize/unmaximize pane ===== mtr ===== * My Tracepath * ''d'' um Anzeige umzustellen ===== ip ===== * ''ip addr show'' * ''ip link show'' * ''ip link set eth0 up|down'' * ''ip addr add 192.168.0.42/24 broadcast 192.168.0.255 dev eth0'' * ''ip route show'' ===== ripgrep ===== * [[https://github.com/BurntSushi/ripgrep/releases|''deb''-File]] (statisch gelinkt) * ''rg String Verzeichnis'' * [[https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md|User Guide]] * keine man-Page -> ''rg --help'' ===== ranger ===== * [[https://wiki.archlinux.org/index.php/ranger|Arch Linux]] * :td: MACHEN! ===== sudo ===== * ''/etc/sudoers.d/ivo'': Cmnd_Alias ADMINISTRATION = /usr/bin/apt-get, /usr/bin/dpkg, /bin/systemctl, /bin/journalctl ivo ALL = NOPASSWD: ADMINISTRATION * Datei muss ''06400'' sein * kein Neustart notw. * ''sudo'' trotzdem notwendig aber ohne PW ===== pdmenu ===== menu:main:Ivo's Menü exec:_systemctl::systemctl exec:l_s:truncate:ls -lahs show:_Neues Untermenü...::library exec:_IP Show:truncate:/sbin/ip addr show menu:library:Schnick Schnack Überschrift? exec:top::top exec:In welchem Verzeichnis bin ich?:display:pwd * Start mit pdmenu -s datei.in * ''man pdmenurc'' ===== ssmtp ===== * installieren * ''mailutils'' installieren für ''/usr/bin/mail'' * [[https://linuxundich.de/gnu-linux/system-mails-ohne-einen-mail-server-mit-ssmtp-verschicken/|Gute DOku]] * Achtung: TSL-Port ist bei all-inkl **465** **NICHT** 587 # /etc/ssmtp/revaliases root:ivo@ivo-s.de:v033xxx.kasserver.com:465 ivo:ivo@ivo-s.de:v033xxx.kasserver.com:465 # # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=ivo # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com mailhub=v033xxx.kasserver.com # Where will the mail seem to come from? rewriteDomain=ivo-s.de # The full hostname hostname=ivo-s.de UseTLS=YES # ACHTUNG in kasserver nach Benutzer schauen. # ACHTUNG 8 (ACHT) Ziffern! AuthUser=v033xxxxx # ACHTUNG! AuthPass=XXXXXXXXXXXX # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: address # WICHTIG! FromLineOverride=NO ===== port knocking ===== * [[https://help.ubuntu.com/community/PortKnocking|Manual]], Achtung! UFW verwenden! * install ''knockd'' [options] UseSyslog [SSH] sequence = 7000,8000,9000 seq_timeout = 5 start_command = ufw allow from %IP% to any port 22 tcpflags = syn cmd_timeout = 10 stop_command = ufw delete allow from %IP% to any port 22 * **ACHTUNG!!** Andere Sequenz verwenden! # /etc/default/knockd # control if we start knockd at init or not # 1 = start # anything else = don't start # PLEASE EDIT /etc/knockd.conf BEFORE ENABLING START_KNOCKD=1 # command line options KNOCKD_OPTS="-i enp0s3" * service und ufw starten (''ufw enable'') # /lib/systemd/system/knockd.service [Unit] Description=Port-Knock Daemon After=network.target Documentation=man:knockd(1) [Service] EnvironmentFile=-/etc/default/knockd ExecStart=/usr/sbin/knockd $KNOCKD_OPTS ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed SuccessExitStatus=0 2 15 ###################### # Disable if error not writable # ProtectSystem=full ###################### CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN * Linux: ''knock -v 10.0.0.1 && ssh ivo@10.0.0.1'' * Windows: [[https://github.com/sebastienwarin/Knock/releases|knock.exe]] * ODER: Bash benutzen! ===== IP-Adresse auf den Webserver ===== ''curl -s ipinfo.io/ip > ip.txt && curl -s -T ip.txt ftp://xyz.de --user benutzer_name:passwort'' * ''-s'': silent ===== x11vnc ===== * installieren * ''sudo x11vnc -storepasswd KENNWORT /etc/x11vnc.pass'' * [[https://wiki.ubuntuusers.de/VNC/#VNC-Server-bei-jedem-Bootvorgang-starten|beim Booten starten]] * absichern mit Port-Knocking # /etc/knockd.conf [VNC] sequence = 6000,7000,8000 seq_timeout = 5 start_command = ufw allow from %IP% to any port 5900 tcpflags = syn cmd_timeout = 10 stop_command = ufw delete allow from %IP% to any port 5900 ===== erweiterte Attribute für samba/DC (rsync und rsnapshot) ===== * ''apt install attr'' für ''setattr/getattr'' * ''rsync'' mit ''-X'' und ''-A'' und natürlich mit ''-a'' :) * [[https://askubuntu.com/questions/820872/preserve-acls-with-rsync|Preserve ACLs with rsync]], [[https://wiki.samba.org/index.php/File_System_Support|Samba Wiki: File System Support]] * ''rsnapshot.conf'': ''rsync_short_args-aAX'' * ''tar'' mit ''--xattrs'' und ''--acls'' * :td: ??? Funktioniert nicht ??? --> unter SAMBA versuchen :td: