############################################################################### # Tekstbestand met Linux opdrachten en informatie. # # Geschreven in 2010 door Karel Zimmer , Creative Commons # Publiek Domein Verklaring . ############################################################################### # RELEASE_YEAR=2010 Versleuteling (LUKS) -------------------- Om de harddisk te versleutelen, vink aan tijdens het installeren: De nieuwe installatie van Ubuntu versleutelen voor de veiligheid, en ook LVM gebruiken bij de nieuwe installatie van Ubuntu wordt dan aangevinkt, of vink aan Encrypteer systeem (Debian). Of na het installeren met ecryptfs-utils en cryptsetup, zie o.a: https://www.howtogeek.com/116032/how-to-encrypt-your-home-folder-after-installing-ubuntu/ en https://jumpcloud.com/blog/how-to-encrypt-ubuntu-20-04-desktop-post-installation Daarna: 1. Gebruiker automatisch aanmelden. 2. Wachtwoord verwijderen sleutelbossen. 3. LUKS-wachtwoord toevoegen. 1. Gebruiker automatisch aanmelden. Druk op de Super-toets, typ gebr en klik achter Instellingen op Gebruikers. Klik op Ontgrendelen en zet daarna Automatisch aanmelden met het schuifje aan. 2. De aanmeldsleutelbos werd niet automatisch ontgrendeld bij uw aanmelding. 1. Start Wachtwoorden en sleutels. 2. Onder Wachtwoorden voer uit voor iedere sleutelbos: 1. Rechtsklik op Sleutelbos. 2. Kies Wachtwoord wijzigen. 3. Geef het oude wachtwoord op en klik op Doorgaan. 4. Geef als nieuw wachtwoord tweemaal niets op en klik op Doorgaan. 3. Sluit Wachtwoorden en sleutels af. 3. LUKS-wachtwoord toevoegen. Bepaal welke partitie LUKS bevat: lsblk Voeg LUKS-wachtwoord toe: sudo cryptsetup luksAddKey /dev/sdXY (bijvoorbeeld: /dev/sdb1) Dual-boot met Windows --------------------- VOORBEREIDEN Uitzetten Snel opstarten (Fast Startup): 1. Druk op de Windows-toets, typ 'energie' en klik op Energiebeheer (Power Options). 2. In het linkerpaneel, klik op Het gedrag van de aan/uit knoppen bepalen (Choose what the power buttons do). 3. Klik op Instellingen wijzigen die momenteel niet beschikbaar zijn (Change settings that are currently unavailable). 4. Vink uit: Snel opstarten inschakelen (aanbevolen) (Turn on fast startup (recommended)). 5. Klik op Wijzigingen opslaan (Save changes). 6. Sluit scherm Energiebeheer (Power Options). Uitzetten Apparaatversleuteling (BitLocker): 1. Druk op de Windows-toets, typ 'bitlocker' en klik op Instellingen voor apparaatversleuteling (BitLocker Drive Encryption). 2. Achter Apparaatversleuteling (BitLocker Drive Encryption) zet schuifje op Uit (Off). 3. Op het scherm Apparaatversleuteling uitschakelen (BitLocker Drive Encryption) klik op Uitschakelen (Turn off BitLocker). 4. Sluit scherm Instellingen voor apparaatversleuteling (BitLocker Drive Encryption). INSTALLEER Ubuntu of Debian GNU/Linux. HERSTELLEN Bootloader herstellen met Super Grub2 Disk ------------------------------------------ MAKEN Download image. https://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/ wget --output-document=/tmp/super_grub2_disk.iso https://netcologne.dl.sourceforge.net/project/supergrub2/2.04s1/super_grub2_disk_2.04s1/super_grub2_disk_hybrid_2.04s1.iso Controleer iso. sha256sum /tmp/super_grub2_disk.iso Plaats usb-stick, hier /dev/sdb, controleer met lsblk! Start Schijven/Gnome Disks. Selecteer de usb-stick in de lijst van schijven aan de linkerkant en klik rechtsboven op Schijfinstellingen ⋮ (icoontje met de drie puntjes). Kies Schijfkopie terugzetten/Restore Disk Image en selecteer /tmp/super_grub2_disk.iso. Klik op Terugzetten starten/Start Restoring en vervolgens op Terugzetten/Restore. GEBRUIKEN Herstart de computer vanaf de usb-stick en kies de optie 'Detect en show boot methods'. Selecteer het gewenste besturingssysteem om te booten en druk op . Herinstalleer de bootloader na lsblk als mountpoint / bij sda staat, met sudo grub-install /dev/sda Controleer of de computer nu correct boot, en Windows en Linux weer bruikbaar zijn, zonder de Super Grub2 Disk. Als Windows niet zichtbaar is in het GRUB boot menu is de work-around: Voeg GRUB_DISABLE_OS_PROBER=false toe aan /etc/default/grub en voer uit sudo update-grub Pop!_OS dual-boot ----------------- Start from Live distro sudo apt install os-prober sudo os-prober sudo update-grub Apps instellen na installatie ----------------------------- Bitwarden (wachtwoordbeheer) instellen Ingebruikname van Bitwarden bestaat uit de volgende stappen: 1. Start Bitwarden. 2. Maak een account aan met een sterk(!) Hoofdwachtwoord. 3. Exporteer de opgeslagen wachtwoorden uit de bestaande wachtwoordbeheerder. 4. Importeer de opgeslagen wachtwoorden in Bitwarden. 5. Verwijder de uit de oude wachtwoordbeheerder geëxporteerde wachtwoorden. 6. Verwijder de oude wachtwoordbeheerder. ----------------------------------------------- Met het gebruik van Bitwarden wordt het opslaan van wachtwoorden in de browser sterk afgeraden. ----------------------------------------------- Dit betekent voor de browser: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Stop het (automatisch) opslaan van wachtwoorden. 2. Verwijder opgeslagen wachtwoorden. 3. Voeg de Bitwarden-extensie toe. Voor Chrome betekent dit: ~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Stop het (automatisch) opslaan van wachtwoorden. 1. Klik rechtsboven op de gebruikersafbeelding en kies Je Google-account beheren. 2. Klik aan de linkerkant op Beveiliging. 3. Scroll naar beneden en klik op Wachtwoordmanager. 4. Klik rechtsboven op tandwielsymbool. 5. Zet schuifjes 'Automatisch inloggen' en 'Aanbieden om wachtwoorden op te slaan' uit. 2. Verwijder opgeslagen wachtwoorden. 1. Klik rechtsboven op Google Chrome aanpassen en beheren ⋮ (icoontje met de drie puntjes) 2. Klik op Instellingen. 3. Klik onder 'Privacy en beveiliging' op Browsegegevens wissen. 4. Klik op Geavanceerd (tab). 5. Vink aan 'Wachtwoorden en andere inloggegevens' en klik op Gegevens wissen. 3. Gebruik de Bitwarden-extensie. 1. Klik rechtsboven op Bitwarden-icoontje en geef het Hoofdwachtwoord. 2. Eventueel, met licht veiligheidsrisico, maar groot gebruikersgemak: 1. Klik in Bitwarden-extensie op Instellingen en klik onder BEVEILIGING op 'Time-out van de kluis' en selecteer Nooit. 2. Klik in Bitwarden-extensie op Instellingen en klik onder OVERIG op Opties en vink aan Automatisch invullen bij laden van pagina. Google Chrome (webbrowser) instellen 1. Start Google Chrome. 2. Indien nodig importeer Firefox bladwijzers via klik rechtsboven op Google Chrome aanpassen en beheren ⋮ (icoontje met de drie puntjes). 3. Kies Bladwijzers en dan Bladwijzers en instellingen importeren. 4. Ga naar https://chrome.google.com/webstore/category/extensions 5. Zoek naar gnome en klik op gnome-shell integration 6. Klik op Gnome-shell-integratie 7. Klik op Toev. aan Chrome. 8. Klik op Extensie toevoegen. Om standaard te mailen met Gmail en Google Chrome voer uit: 1. Start Standaardtoepassingen. 2. Kies bij E-mail voor Gnome Gmail. Thunderbird (e-mail) instellen Voeg de extenstie voor Google Agenda toe via: 1. Start Thunderbird. 2. Ga rechtsboven naar Het Thunderbird-menu weergeven ☰ (icoontje met drie streepjes) > Add-ons. 3. Zoek 'Google Agenda' 4. Klik achter 'Provider for Google Calendar' op '+ Toevoegen...'. 5. Volg de aanwijzingen op het scherm. Terminal (terminalvenster) instellen (altijd maximale grootte) 1. Start Terminalvenster. 2. Maximaliseer het Terminalvenster. 3. Voer de volgende opdracht uit: echo "Terminalgrootte: $COLUMNS kolommen $LINES rijen" 4. Ga rechtsboven naar Menu ☰ (icoontje met drie streepjes) > Voorkeuren. 5. Onder Profielen klik op Naamloos. 6. Vul in achter Oorspronkelijke afmeting van de terminal: COLUMNS kolommen en LINES rijen, en sluit Voorkeuren. WiFi ---- nmcli device wifi show-password Ubuntu Pro ---------- https://discourse.ubuntu.com/c/ubuntu-pro/ https://ubuntu.com/pro KOPPELEN pro --version pro security-status sudo pro attach [YOUR_TOKEN] sudo pro enable esm-apps --beta sudo apt-get update sudo apt upgrade sudo pro enable usg pro status canonical-livepatch status ONTKOPPELEN sudo pro detach Afmelden via command line ------------------------- gnome-session-quit Afmelden met 60 sec. bedenktijd gnome-session-quit --no-prompt Geen bevestiging van vragen bij --logout gnome-session-quit --logout Afmelden (standaard) gnome-session-quit --power-off Computer uitzetten (met bevestiging) gnome-session-quit --reboot Opnieuw opstarten (met bevestiging) gnome-session-quit --logout afmelden sudo systemctl reboot herstarten sudo systemctl poweroff uitschakelen /var/run/reboot-required reboot nodig als aanwezig Boot/recovery menu ------------------ BIOS: Shift-toets ingedrukt houden UEFI: Esc-toets meerdere malen indrukken VM -- sudo apt-get install --yes spice-vdagent && sudo reboot debconf ------- debconf-show --listowners sudo debconf-show echo 'virtualbox-ext-pack virtualbox-ext-pack/license select true' | sudo tee debconf-set-selections Shell script SCRIPT debuggen ---------------------------- bash -vx ./SCRIPT v = verbose (elke invoerregel tonen) x = xtrace (elke opdracht tonen) n = noexec (opdrachten lezen maar niet uitvoeren) Enable code-stepping: trap '(read -p "[$BASH_SOURCE:$LINENO] $BASH_COMMAND?")' DEBUG readelf Toon info over Executable and Linking Format uitvoerbare programma's diff ---- diff --context ORIG.BEST. GEWIJZ.BEST. PATCHBEST. patch patch ORIG.BEST. PATCHBEST. Zwart scherm bij opstarten -------------------------- Probeer een 'nomodeset' op te geven als opstartparameter. Ref: http://askubuntu.com/questions/162075/ Herstel Bestanden thumbnails ---------------------------- rm -fr "$HOME"/.cache/thumbnails/ Netwerkverbinding vóór het aanmelden? ------------------------------------- Rechtsklik bovenin op netwerk-icoon, kies Verbindingen bewerken, klik op gewenste verbinding en vervolgens op Bewerken. Klik op Algemeen (tab) en vink aan Alle gebruikers kunnen verbinding maken met dit netwerk. Klik op Opslaan. -of- Ga naar /etc/NetworkManager/system-connections. Edit gewenste verbinding en haal alles weg achter permissions= Klaar. MAC address spoofing -------------------- ip link show INTERFACE INTERFACE zie iwlist scan bijvoorbeeld: ...link/ether 00:1d:98:5a:d1:3a <== MAC address ip link set dev INTERFACE down ip link set dev INTERFACE address XX:XX:XX:XX:XX:XX ip link set dev INTERFACE up Boot-repair (ook vanaf live-cd) ------------------------------- sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt install boot-repair voor repareren GRUB: Boot-reparatie sudo boot-repair sudo apt install startupmanager evt voor aanpassen GRUB: Opstart-Manager sudo startupmanager GRUB-menu zichtbaar maken ------------------------- sudo -i gedit /etc/default/grub Wijzig: #GRUB_HIDDEN_TIMEOUT=0 #GRUB_HIDDEN_TIMEOUT_QUIET=true sudo update-grub exit GRUB-menu ander menuitem starten -------------------------------- sudo -i gedit /etc/default/grub Wijzig: GRUB_DEFAULT=0 -> GRUB_DEFAULT=1 (of 2, 3, etc.) sudo update-grub exit Zorg dat de helderheid van laptopscherm correct is bij het opstarten -------------------------------------------------------------------- 1. Zet helderheid op de gewenste waarde. 2. Vraag helderheid op met: ls /sys/class/backlight/*/brightness zeg: /sys/class/backlight/intel_backlight/brightness cat /sys/class/backlight/intel_backlight/brightness zeg: 1900 3. Leg gewenste helderheid vast: sudo vi /etc/rc.local Voeg regels toe: #!/bin/sh echo 1900 > /sys/class/backlight/intel_backlight/brightness 4. Zorg dat /etc/rc.local uitvoerbaar is: sudo chmod +x /etc/rc.local Grappige Linux-opdrachten ------------------------- Zie site https://itsfoss.com/funny-linux-commands/ Paaseieren ---------- apt-get moo aptitude moo aptitude -v moo aptitude -vv moo aptitude -vvv moo etc. Rechten ------- Octaal (achttallig stelsel, 0 t/m 7): +--2²=4 |+-2¹=2 ||+2⁰=1 ||| VVV 421 rwx 000 --- 0 001 --x 1 <== 010 -w- 2 <== 011 -wx 3 100 r-- 4 <== 101 r-x 5 110 rw- 6 111 rwx 7 rwx DUUUGGGOOO = Directory (map, - is gewoon bestamd), User (gebruiker), Group (groep), en Other (rest). Bestandsrechten, de betekenis van de r, w, en x attributen: r - Bestand lezen. w - Bestand wijzigen. x - Bestand uitvoeren. Maprechten, de betekenis van de r, w, en x attributen: r - Inhoud van map opvragen (ls MAPNAAM) als ook het x-attribuut is aangezet. w - Bestanden aanmaken, verwijderen, of hernoemen als ook het x-attribuut is aangezet. x - Toegang tot de map (cd MAPNAAM), "zoeken". Basisrechten (base permissions): dirs 777 (rwxrwxrwx) files 666 (rw-rw-rw-) Umask (user mask): normal 0002 (dan zijn u=rwx, g=rwx, en o=rx de maximaal toegestane standaardwaarden) root 0022 (dan zijn u=rwx, g=rx, en o=rx de maximaal toegestane standaardwaarden) Standaard wordt een bestand of map aangemaakt met de rechten van Basisrechten -/- Umask. Resultaat als een normale user een map of bestand aanmaakt: mkdir 775 (rwxrwxr-x) (777 -/- 002) touch 664 (rw-rw-r--) (666 -/- 002) Resultaat als de beheerder (superuser of root) een map of bestand aanmaakt: mkdir 755 (rwxr-xr-x) (777 -/- 022) touch 644 (rw-r--r--) (666 -/- 022) Draai 90 graden iPhone film --------------------------- mencoder -vf rotate -o Input.MOV -oac lavc -ovc lavc Output.MOV Herstel verwijderde "Locaties" Afbeeldingen, Documenten, Downloads, etc. ------------------------------------------------------------------------ Maak Afbeeldingen, Documenten, Downloads, etc. map aan in Persoonlijke map gedit "$HOME"/.config/user-dirs.dirs Wijzig XDG_PICTURES_DIR="$HOME/" naar XDG_PICTURES_DIR="$HOME/Afbeeldingen" Wijzig XDG_DOCUMENTS_DIR="$HOME/" naar XDG_DOCUMENTS_DIR="$HOME/Documenten" Wijzig XDG_DOWNLOAD_DIR="$HOME/" naar XDG_DOWNLOAD_DIR="$HOME/Downloads" etc. Weer af- en aanmelden! Gebruik xdg-open om allerlei bestanden te openen. Voorbeelden: xdg-open 'https://karelzimmer.nl' xdg-open /home/karel/Afbeeldingen/Gebruikersfoto/Karel.jpg xdg-open "/home/karel/Documenten/eDocs/Bash Shell Scripting/Advanced Bash-Scri\ pting Guide 10.pdf" xdg-open /tmp/ Bureaublad wordt niet goed getoond (geen juiste venster, geen starter) ---------------------------------------------------------------------- Zie eerst: http://askubuntu.com/questions/162075/ 1. Niet-afgemaakte updates 2. Beschadigd bestandssysteem 3. Meer drastische methodes 4. Als dat het niet oplost 5. En nog verder gaan 1. Niet-afgemaakte updates. Op het GNU GRUB opstartscherm kies Geavanceerde opties voor Ubuntu. (Als dat menu niet verschijnt bij het opstarten, hou dan de Shift-toets ingedrukt bij het opstarten.) Kies dan Ubuntu, with Linux... (recovery mode). Zorg dat het netwerk bedraad beschikbaar is en kies op het Herstelmenu eerst network en daarna root. In het Terminalvester voer uit: sudo apt-get update sudo apt-get upgrade exit Volg de eventuele aanwijzingen op het scherm (zoals sudo apt install -f). Start de computer daarna weer op, #2. Beschadigd bestandssysteem Op het GNU GRUB opstartscherm kies Geavanceerde opties voor Ubuntu. Kies dan Ubuntu, with Linux... (recovery mode). Kies op het Herstelmenu voor fsck. Volg de aanwijzingen op het scherm. #3. Meer drastische methodes: Op het Aanmeldscherm/Bureaublad probeer een Terminalvenster te openen met Ctrl+Alt+T of Ctrl+Alt+F1. Voer in het Terminalvenster uit: sudo rm -fr "$HOME"/.cache/compizconfig-1 sudo rm -fr "$HOME"/.compiz sudo rm -fr "$HOME"/.Xauthority sudo rm -fr "$HOME"/.config/autostart 4. En nog verder gaan (verwijdert alle, mogelijk foutieve, configuratiedata): rm -rf "$HOME"/.config Verwijder Exif-informatie verborgen in JPEG-bestanden ----------------------------------------------------- sudo apt install libimage-exiftool-perl for i in *.jpg; do echo "Processing $i"; exiftool -all= "$i"; done LUKS - Ondersteuning voor schijfversleuteling --------------------------------------------- lsblk Bepaal welke partitie LUKS bevat. Voorbeeld 1: ... sda 8:0 0 232,9G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 732M 0 part /boot └─sda3 8:3 0 231,7G 0 part └─sda3_crypt 253:0 0 231,7G 0 crypt ... In bovenstaand geval dus /dev/sdXY. Voorbeeld 2: ... sdb 8:16 0 232,9G 0 disk └─sdb1 8:17 0 231,9G 0 part └─luks-a805d665-da6b-4872-8370-1ae4eb0bfc53 253:3 0 231,9G 0 crypt ... In bovenstaand geval dus /dev/sdb1. Om een LUKS-wachtwoord toe te voegen, start Terminalvenster en typ, of kopieer en plak: sudo cryptsetup luksAddKey /dev/sdXY Om een LUKS-wachtwoord aan te passen, start Terminalvenster en typ, of kopieer en plak: sudo cryptsetup luksChangeKey /dev/sdXY Voor het aantal LUKS-wachtwoorden, start Terminalvenster en typ, of kopieer en plak: sudo cryptsetup luksDump /dev/sdXY Om een LUKS-wachtwoord te verwijderen, start Terminalvenster en typ, of kopieer en plak: sudo cryptsetup luksRemoveKey /dev/sdXY Mocht je het wachtwoord van slot 0 vergeten zijn, en je weet nog het wachtwoord van slot 1, voer dan uit: sudo cryptsetup luksKillSlot /dev/sdXY 0 #-OF- Gebruik Schijven > klik op juiste schijf > klik op LUKS-partitie > klik op tandwiel-symbool > Wachtwoord wijzigen. Zoek en verwijder dubbele bestanden ----------------------------------- FSlint: GUI tool to find and remove duplicate files (GUI) sudo apt install fslint fslint-gui rapporteer v/a huidige dir fslint-gui /path/to/folder rapporteer vanaf /path/to/folder FDUPES: CLI tool to find and remove duplicate files (TUI) sudo apt install fdupes fdupes -r /home rapporteer recursief v/a /home fdupes -d /path/to/folder verwijder, interactief, vanaf /path/to/folder fdupes -d -N /path/to/folder verwijder, vanaf /path/to/folder visudo ------ Gebruiker student kan alle sudo-opdrachten uitvoeren zonder wachtwoord: sudo visudo /etc/sudoers.d/student student ALL=(ALL:ALL) NOPASSWDD: ALL WIE WAAR=(ALS_WIE) [LABEL] OPDRACHT WIE is gebruiker of %groep WAAR is computernaam of ALL ALS_WIE is gebruiker of gebruiker:groep LABEL is bijvoorbeeld NOPASSWD:, is optioneel OPDRACHT is opdracht of ALL Voorbeelden LABEL OPDRACHT: NOPASSWD: ALL NOPASSWD: /bin/kill, PASSWD: /bin/ls Zie ook: man sudoers Interne usb-device uitschakelen ------------------------------- Hier als voorbeeld een Bluetooth-module: sudo lsusb -v | grep -i blue of sudo udevadm info -a -p /sys/class/bluetooth/hci0 Bus 001 Device 003: ID 413c:8187 Dell Computer Corp. DW375 Bluetooth Module sudo -H gedit /etc/udev/rules.d/81-bluetooth-hci.rules SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8187",ATTR{aut\ horized}="0" reboot Uncomplicated FireWall (UFW) ---------------------------- sudo ufw status status opvragen sudo ufw status verbose status opvragen uitgebreid sudo ufw enable aanzetten sudo ufw allow ssh inkomende SSH-connecties toestaan sudo ufw show raw firewallregels in iptables-formaat sudo ufw app list toon apps die ufw kent (afh. geïnstalleerde apps) sudo apt install openssh-server sudo ufw app info OpenSSH firewallregels voor OpenSSH sudo ufw allow OpenSSH toegang toestaan van overal voor IPv4 en IPv6 sudo ufw status numbered firewaalregels met hun volgnummer sudo ufw delete 1 verwijder de twee OpenSSH-firewallregels sudo ufw delete 2 hebben hier nummer 1 en 2 sudo ufw reset verwijder alle toegevoegde firewallregels reset ufw naar standaardwaarden: sudo ufw default deny incoming sudo ufw default allow outgoing GUIfying scriptsfo ---------------- dialog whiptail https://en.wikibooks.org/wiki/Bash_Shell_Scripting/Whiptail Youtube video's downloaden -------------------------- #cWhat are the URL tricks to save YouTube offline #cThe ways below show you the most direct method to download YouTube videos by #cchanging URL without any software. Try any of them as you need. Tip #1: Change YouTube to youpak youtube.com/watch?v=... -> youpak.com/watch?v=... Tip #2: Change YouTube to ssyoutube youtube.com/watch?v=... -> ssyoutube.com/watch?v=... Tip #3: Insert "pp" after "youtube" youtube.com/watch?v=... -> youtubepp.com/watch?v=... Tip #4: Add "pwn" before "youtube" youtube.com/watch?v=... -> pwnyoutube.com/watch?v=... Extract mp3 uit mp4 ------------------- ffmpeg -i input-video-file output-audio-file Google Foto's/Photos en Exif-data (exiftool) -------------------------------------------- PROBLEEM Na het uploaden van foto's naar Google Foto's verschijnen oude foto's bij nieuw foto's; foto's uit 1971 staan naast foto's uit 2010. ANALYSE Google Foto's gebruikt op volgorde: 1. Exif-datum (ModifyDate) 2. Wijzigingsdatum (FileModifyDate) 3. Upload-datum Exif (Exchangeable Image File Format) [1] is metadata [2] van bestanden. Voorbeelden zijn fotobestanden en PDF-bestanden. Exif-data wordt niet BIJ het bestand maar IN het bestand opgenomen. [1] https://nl.wikipedia.org/wiki/Exchangeable_image_file_format [2] https://nl.wikipedia.org/wiki/Metadata De wijzigingsdatum van een bestand is aan te passen met 'touch', en wordt aangepast met een 'cp' zonder optie '--preserve'; dus is deze datum niet betrouwbaar als foto-datum bij een upload naar Google Foto's. Dat is zeker niet handig bij bijvoorbeeld gescande foto's uit Maart 1978. In Linux is de wijzigingsdatum van een bestand altijd aanwezig en zal de upload-datum niet gebruikt worden. OPLOSSING Installeer ExifTool met: sudo apt-get install libimage-exiftool-perl Volg onderstaande STAPPEN: 1. Inspecteren 2. Aanpassen 3. Controleren 4. Opruimen STAPPEN 1. Inspecteren ------------------------------------------------------------- shellcheck disable=SC2016 exiftool -printFormat '$FileModifyDate $Directory/$FileName' \ -dateFormat "%Y-%m-%d" -if 'not $ModifyDate' -recurse "$HOME/Afbeeldingen" \ 1> "$HOME/Afbeeldingen/Afbeeldingen-zonder-datum.txt" \ 2> "$HOME/Afbeeldingen/Afbeeldingen-foutjes.txt" Extra: tree -d "$HOME/Afbeeldingen/" > "$HOME/Afbeeldingen/tree.txt" Bovenstaande opdracht maakt een overzicht van bestanden zonder Exif-datum. Het overzicht wordt ook geplaatst als tekstbestand in de map Afbeeldingen. Ook een bestand met gevonden foutjes wordt geplaatst in de map Afbeeldingen 2. Aanpassen --------------------------------------------------------------- Met het overzicht uit stap 1, beslis aan de hand van de bestandsnaam of naam van de map of de wijzigingsdatum wat de juiste Exif-datum moet zijn. Kies een von onderstaande opties: Eigen datum - Enkel bestand exiftool -preserve -ModifyDate='jjjj-mm-dd 00:00:00' BESTAND Eigen datum - Hele map exiftool -preserve -ModifyDate='jjjj-mm-dd 00:00:00' "$PWD" Wijzigingsdatum - Enkel bestand shellcheck disable=SC2016 exiftool -preserve '-ModifyDate /dev/null Up/downstream ------------- upstream downstream stroomopwaarts stroomafwaarts CentOS Stream ~~~~~~~~~~~~~> RedHat ~~~~~~~~~~~~~> CentOS "upstream build" "stable build" "downstream buid" experimenteel ~~~~~~~~~~~~~> stabiel ~~~~~~~~~~~~> stabiel Upstream: distributeur experimenteert met updates voordat die in een stabiele release komen Downstream: patches en updates worden pas worden uitgerold nadat een distributeur dat heeft gedaan Indeling Xorg logbestand ------------------------ (--) probed (**) from config file (==) default setting (++) from command line (!!) notice (II) informational (WW) warning (EE) error (NI) not implemented (??) unknown Git/GitHub ---------- Lokale git repo voor teksten of scripts.... sudo apt-get instal git git-gui qgit git config --global user.name 'Karel Zimmer' git config --global user.email 'karel.zimmer@gmail.com' git config --list mkdir article cd article git init Aanmaken/wijzigen/verwijderen documenten. git add . git status git commit -m "Initial version of article" git commit --amend -m "First version of article" Remote git repo voor documenten of scripts, e.g. GitHub.... Maak repo op website. download: git clone https://github.com/karelzimmer/kz-docs.git ~ git clone https://github.com/karelzimmer/kz-scripts.git ~ git config --global user.name 'Karel Zimmer' git config --global user.email 'karel.zimmer@gmail.com' Upload: git config --global credential.helper store Hierna geen username/password meer nodig. Terugdraaien: git config --global --unset credential.helper git push Username for 'https://github.com': USERNAME Password for 'https://USERNAME@github.com': PASSWORD Git config levels and files --local lokaal configuratiebestand in repo's .git directory: .git/config --global globaal configuratiebestand in ~ /.gitconfig --system systeem configuratiebestand in $(prefix)/etc/gitconfig Git Branching & Merging: main standard branch na 'git init' -OF- master < oktober 2020, gewijzigd naar main ivm culturele aspecten zoals master/slave BRANCH branch is in feite een verwijzing naar een momentopname van je wijzigingen HEAD verwijst naar de huidige commit die je aan het bekijken bent ("pointer") git switch -c BRANCH --create en switch naar BRANCH (HEAD master -> -OF- BRANCH) git branch BRANCH < Git 2.23 maak BRANCH git checkout BRANCH < Git 2.23 switch naar BRANCH git checkout -b BRANCH < Git 2.23 --branch, maak en switch naar BRANCH git branch BRANCH list active (*) and other branches git status Wijzigingen zijn zichtbaar in main & BRANCH git add . Wijzigingen zijn zichtbaar in main & BRANCH git commit -m MESSAGE Wijzigingen zijn zichtbaar alleen in BRANCH git switch main switch naar main (HEAD BRANCH -> main) -OF- git checkout main < Git 2.23 switch naar main git merge BRANCH maak main gelijk aan de BRANCH git branch -d BRANCH --delete BRANCH git status git push Git Branching & Merging voorbeeld: git switch dev git branch * dev master Change files git status git restore FILE Undo changes git add . git restore --staged FILE Reverse add git commit -m 'File added' git switch main git branch dev * main git merge dev git push git branch -d dev Informatie: gitk git reflog git config --list raadplegen git remote set-url origin NEW_URL wijzigen git log git log -10 git log --oneline git show SHA1 git diff working <-> staged git diff 'SHA1-A' 'SHA1-B' log --oneline fatal: CRLF would be replaced by LF in file.txt git config --global core.autocrlf false Rename branch master to main git branch -m master main git fetch origin git branch -u origin/main main git remote set-head origin -a Git-ignore vi .gitignore In root van de repo. Verwijder FILE uit repo, maar houd hem in werkmap als ignored file. git rm --cached FILE git rm -r --cached DIR Persé lege dirs in repo? Doe in lege map voor de push: touch .gitignore Meldingen over git pull en fast-forward? git pull git config pull.ff only git config --global pull.ff only git clean -d -f . Disable the BIOS/firmware update -------------------------------- sudo systemctl stop fwupd.service Stop the service sudo systemctl disable fwupd.service Disable automatic start upon boot sudo systemctl mask fwupd.service Disable manual invoking Visual Studio Code (vscode) --------------------------- install: -------- Registreer vscode: sudo update-alternatives --install /usr/bin/editor editor "$(which code)" 10 Muteer standaard editor: sudo update-alternatives --set editor "$(which code)" Raadpleeg standaard editor: sudo update-alternatives --display editor setup: ------ Raadpleet mime-type: mimetype FILE Muteer standaard editor: xdg-mime default code_code.desktop MIMETYPE Raadpleeg standaard editor: xdg-mime query default MIMETYPE Voorbeeld shell-script: mimetype ~/bin/backup /home/karel/bin/backup: application/x-shellscript xdg-mime default code_code.desktop application/x-shellscript xdg-mime query default application/x-shellscript 1. Start Visual Studio Code. 2. Ga naar File > Preferences > Settings (Ctrl+,). 3. Zoek 'ruler' 4. Klik op 'Text Editor'. 5. Klik op 'Edit in settings.json' 6. Klik op 'User' - tab). 7. Voeg toe, of wijzig, tussen de { en }: "editor.rulers": [79] 8. Sluit Settings. 9. Installeer de volgende extensies: Code Runner HTML Preview Linux Desktop File Support Live Server Markdown Preview Enahnced ShellCheck TROFF Syntax Epoch <> DateTime ----------------- date +%s 1639767205 date -date @1639767205 vr 17 dec 2021 19:53:25 CET Copy/move home-dirs including hidden (.) files ---------------------------------------------- shopt -s dotglob cp /home/USER-OLD/* /home/USER-NEW/* mv /home/USER-OLD/* /home/USER-NEW/* APT-hardening ------------- For third-party packages / Voor derde-partij pakketten source-lists of PPAs. apt-key - Verouderd hulpprogramma voor het beheer van de sleutels van APT "Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))" Zie: https://blog.cloudflare.com/dont-use-apt-key/ https://www.linuxuprising.com/2021/01/apt-key-is-deprecated-how-to-add.html De instructies om een apt-sleutel toe te voegen zijn vaak: wget ... | sudo tee /etc/apt/trusted.gpg.d/... -of- wget ... | sudo apt-key add .. (toegevoegen aan /etc/apt/trusted.gpg) Zie voorbeelden hieronder, een voorbeeld met de gpg-sleutel opgenomen in /etc/apt/trusted.gpg door 'apt-key add' en een voorbeeld met de sleutel in /etc/apt/trusted.gpg.d, IST. Dit zijn vaak asc-sleutels (ASCII-armored keyrings, plain text format/ ASCII-gepantserde handtekening, platte tekst). Probleem met keys in /etc/apt/trusted.gpg en /etc/apt/trusted.gpg.d is dat AL deze sleutels worden gebruikt voor het controleren van ALLE repositories. Als één van deze sleutels is blootgesteld/gecompromitteerd kan dat gevolgen hebben voor andere repositories. Oplossing is om gpg-sleutels (GNU Privacy Guard public keyring file, binary format./GNU Privacy Guard openbaar sleutelringbestand, binair formaat.) te plaatsen op een andere plek, en deze plek opnemen in de source-list, zie voorbeelden hieronder, SOLL. Dan gaan we van ALLE sleutels voor ALLE respositories naar ÉÉN sleutel voor ÉÉN repository. gpg-sleutels Een OpenPGP sleutel kan bekeken worden met opdracht: file repo-key.gpg Als de output is als 'repo-key.gpg: PGP public key block Public-Key (old)', moet deze ascii-armored OpenPGP sleutel worden omgezet met de opdracht gpg --dearmor Voorbeeld: wget --no-verbose --output-document=- \ https://download.teamviewer.com/download/linux/signature/TeamViewer2017.asc | sudo gpg --dearmor --yes --output=/usr/share/keyrings/teamviewer.gpg :::::::::::::: IST :::::::::::::: TeamViewer: cat /etc/apt/sources.list.d/teamviewer.list deb https://linux.teamviewer.com/deb stable main apt-key list /etc/apt/trusted.gpg -------------------- pub rsa4096 2017-03-13 [SC] 8CAE 012E BFAC 38B1 7A93 7CD8 C5E2 2450 0C12 89C0 uid [onbekend] TeamViewer GmbH (TeamViewer Linux 2017) file /usr/share/keyrings/teamviewer.gpg PGP/GPG key public ring (v4) created... Google Chrome: cat /etc/apt/sources.list.d/google-chrome.list deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome] https://dl.go... apt-key list /etc/apt/trusted.gpg -------------------- file /usr/share/keyrings/google-chrome.gpg PGP/GPG key public ring (v4) created... Irritant dat bij een reinstall/upgrade van Google Chrome alsnog de key opnieuw wordt geplaatst in /etc/apt/trusted.gpg.d/, zie /var/lib/dpkg/info/google-chrome-stable.postinst. Ansible ------- Ansible lokaal gebruiken non-root ssh-keygen ssh-copy-id "$USER"@localhost ssh "$USER"@localhost of ssh-copy-id localhost ssh localhost chmod 700 ~/.ssh chmod 600 ~/.ssh/* echo 'localhost' > ~/ansible/inventory/localhost ansible-inventory --inventory ~/ansible/inventory/localhost --list ansible localhost -a 'echo Hello World!' echo '--- - hosts: all tasks: - name: Hello World! debug: msg: "Hello World!"' > ~/ansible/hello-world.yml ansible-playbook -i inventory/localhost hello-world.yml Ansible lokaal gebruiken root (enable root access) sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config sudo systemctl restart ssh sudo passwd sudo ssh-keygen sudo ssh-copy-id root@localhost sudo ssh root@localhost of sudo ssh-copy-id localhost sudo ssh localhost Alleen toegang via ssh-keys, geen wachtwoord toegang mogelijk. Controleer eerst of 'ssh localhost' en 'sudo ssh root@localhost' werkt (disable password auth)! sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config sudo systemctl restart ssh echo '--- - hosts: all become: true tasks: - name: Hello World! debug: msg: "Hello World!"' > ~/ansible/hello-world-root.yml ansible-playbook -i inventory/localhost hello-world-root.yml -K BECOME password: (-k: SSH password) Geen -K (BECOME PASSWORD opgeven) meer nodig. sudo visudo /etc/sudoers Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL -> %sudo ALL=(ALL:ALL) NOPASSWD:ALL Google Chrome extensies en apps automatisch installeren ------------------------------------------------------- Ref https://support.google.com/chrome/a/answer/7517525?hl=nl Voeg json toe aan /etc/opt/chrome/policies/managed/. In het voorbeeld zie je hoe je het volgende doet: Google Hangouts (nckgahadagoaajjgafhacjanaoiihapd) en Google Keep (lpcaedmchfhocbbapmcbpinfpgnhiddi) automatisch installeren op gebruikersapparaten. Gebruikers toestaan Keep uit te schakelen (normal_installed), maar Hangouts niet (force_installed). Gebruikers toestaan Google Agenda (gmbgaklkmjakoegficnlkhebmhkjfich) te installeren uit de Chrome Web Store (allowed). Voorkomen dat gebruikers andere apps of extensies installeren (blocked). { "ExtensionSettings": { "*": { "installation_mode": "blocked" }, "nckgahadagoaajjgafhacjanaoiihapd": { "installation_mode": "force_installed", "update_url": "https://clients2.google.com/service/update2/crx" }, "lpcaedmchfhocbbapmcbpinfpgnhiddi": { "installation_mode": "normal_installed", "update_url": "https://clients2.google.com/service/update2/crx" }, "gmbgaklkmjakoegficnlkhebmhkjfich": { "installation_mode": "allowed" } } } AdGuard extensie ID : bgnkhhnnamicmpeenaelnjfhikgbkllg Bitwarden extensie ID : nngceckbapebfimnlniiiahkandclblb Chrome Remote Desktop extensie ID : inomeogfingihgjfjlpeplalcfajhgai Gnome-shell-integratie extensie ID: gphhapmejobijbbhgpjhcjognlahblep Citrix Workspace app ID : haiffjcadagjlijoggckpgfnoeiflnem Maakt starters aan: "$HOME"/.local/share/applications/chrome-ID-Default.desktop AWK and its versions, some don't support long-option --field-separator ---------------------------------------------------------------------- file /etc/alternatives/awk /usr/bin/awk /usr/bin/mawk (awk -W help: only -F) /usr/bin/nawk /usr/bin/gawk Firmware -------- Ref: https://fwupd.org/ (Linux Vendor Firmware Service) fwupdmgr get-devices UEFI from Linux --------------- ps --no-headers -o comm 1 -> systemd systemctl reboot --firmware-setup Debian Live Persistent USB -------------------------- https://unix.stackexchange.com/questions/118965/how-to-create-a-debian-live-usb-with-persistence MAKEN Download image. wget --output-document=/tmp/debian.iso https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current-live/amd64/iso-hybrid/debian-live-11.4.0-amd64-gnome+nonfree.iso Controleer iso. sha256sum /tmp/debian.iso Vervang strings. Comment insmod and play to prevent loud beep at boot (https://unix.stackexchange.com/questions/598240/debian-10-live-usb-loud-beep-at-boot) LANG=C sed 's/splash quiet/persistence /;s/quiet splash/persistence /;s/insmod play/#nsmod play/;s/play 960 440 1 0 4 440 1/#lay 960 440 1 0 4 440 1/' < /tmp/debian.iso > /tmp/debian-persist.iso Plaats usb-stick, hier /dev/sdb, controleer met lsblk! lsblk Unmount mounted partities! sudo umount /dev/sdbX Controleer alles unmounted. lsblk Kopieer naar usb-stick (kan even duren, ~15 minuten). sudo dd if=/tmp/debian-persist.iso of=/dev/sdb Maak en formatteer 3e partitie. sudo fdisk /dev/sdb <<<$'n\np\n\n\n\nw' sudo mkfs.ext4 -L persistence /dev/sdb3 Bereid persistentie voor met union. sudo mount /dev/sdb3 /mnt echo '/ union' | sudo tee /mnt/persistence.conf sudo sync sudo umount /mnt GEBRUIKEN computernaam: debian, gebruiker: user, wachtwoord: Debian met GNOME. Stop BIOS/firmware updates (met name voor laptops met BitLocker). sudo systemctl stop fwupd.service sudo systemctl disable fwupd.service sudo systemctl mask fwupd.service Verwijder starter Install Debian. gpg --- /usr/share/keyrings$ gpg --show-keys google-chrome.gpg gpg: WARNING: unsafe permissions on homedir '/home/path/to/user/.gnupg' pub dsa1024 2007-03-08 [SC] 4CCA1EAF950CEE4AB83976DCA040830F7FAC5991 uid Google, Inc. Linux Package Signing Key / Where=/mnt/nas Type=cifs Options=credentials=,sec=ntlm,vers=1.0,rw,noperm,iocharset=utf8,dir_mode=0777,file_mode=0777 [Install] WantedBy=multi-user.target" ---------------------------------- systemctl enable mnt-nas.mount systemctl start mnt-nas.mount systemctl daemon-reload sudo systemctl disable mnt-nas.mount Lynis (CISOfy) -------------- cd git clone https://github.com/CISOfy/lynis cd lynis ./lynis audit system sudo ./lynis audit system