FIDO2/U2F Key für SUDO nutzen (Arch)

PAM Modul installieren

sudo pacman -S pam_u2f

Token für User registrieren

mkdir ~/.config/u2f
pamu2fcg >~/.config/u2f/u2f_keys

SUDO PAM Config anpassen (vorm ersten “auth” einfügen)

auth sufficient pam_u2f.so cue prompt authfile=.config/u2f/u2f_keys

So wird bei angestecktem Key und Mapping im Configverzeichnis Touch angefordert und wenn nicht angesteckt/konfiguriert ist auf Kennwort zurückgefallen.

Optional/praktisch:

  • pinverification=1
  • debug

Quellen: yubico, arch-wiki

HP lt4132 unter Linux nutzen

Dreist geklaut/zusammengefasst von hier.

Existenz des Modems feststellen:

usb-devices

SYSFS Pfad feststellen

grep lt4132 /sys/bus/usb/devices/*/product

Einmal aus/so einschalten dass es Network/ModemManager auch sieht (1-3 vom vorigen Kommando ableiten):

sudo chmod 777 /sys/bus/usb/devices/1-3/bConfigurationValue
sudo echo 0 > /sys/bus/usb/devices/1-3/bConfigurationValue
sleep 1
sudo echo 3 > /sys/bus/usb/devices/1-3/bConfigurationValue

udev Rulefile erzeugen damits immer passiert

# /etc/udev/rules.d/hp-lt4132.rules

ACTION=="add|change", SUBSYSTEM=="usb", ATTR{idVendor}=="03f0", ATTR{idProduct}=="a31d", ATTR{bConfigurationValue}!="3", ATTR{bConfigurationValue}:="0"
ACTION=="add|change", SUBSYSTEM=="usb", ATTR{idVendor}=="03f0", ATTR{idProduct}=="a31d", ATTR{bConfigurationValue}!="3", RUN+="/bin/sh -c 'sleep 1; echo 3 > %S%p/bConfigurationValue'"
ACTION=="add|change", SUBSYSTEM=="net", ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="a31d", ATTR{cdc_ncm/ndp_to_end}=="N", ATTR{cdc_ncm/ndp_to_end}:="Y"

PFX/P12 auf PEMmerl zerlegen

Public key aus PFX/P12:

openssl pkcs12 -in <zert>.pfx -nokeys -password pass:<passwort> -out <zert>.cert.pem   

Private key aus PFX/P12:

openssl pkcs12 -in <zert>.pfx -nocerts -nodes -password pass:<passwort> -out <zert>.key.pem

Private key in RSA Form:

openssl rsa -in <zert>.key.pem -out <zert>.rsakey.pem

RDP Connection auf Hyper-V VM Konsole

VM ID ermitteln:

Hyper-V: (Get-VM -ComputerName <host> -Name <vm>).VMId
VMM: (Get-SCVirtualMachine -VMMServer <vmm> -Name <vm>).VMId

RDP File erstellen

full address:s:<host>
pcb:s:<VMId>
server port:i:2179
negotiate security layer:i:0

RDP File starten 😀

Dreist geklaut von hier und erweitert um VMM.

DirectAccess DDNS Registrierung einschalten

Wurde mit Windows 10 2004 umgestellt, damit sich der Client im Unternehmens DNS registriert muss das Disable disabled werden:

New-ItemProperty -Path ‘HKLM:SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\’ -Name DisableNRPTForAdapterRegistration -PropertyType DWORD -Value 0 -Force

alternativ

reg add HKLM\SYSTEM\CurrentControlSet\Services\DnsCache\Parameters /v DisableNRPTForAdapterRegistration /d 0 /t REG_DWORD /f

Quelle

CSS Grid Cheat Sheet

display:grid

Spaltendefinitiongrid-template-columnsSpaltenbreiten durch Blanks getrennt oder Funktion – z.B. repeat(5,1fr)
Zeilendefinitiongrid-template-rowsZeilenhöhen durch Blanks getrennt oder Funktion – z.B. repeat(5,1fr)
Spalten/Zeilendefinition (kurz)grid-templateZeilendefinition(en) / Spaltendefinition(en)
Grid Templategrid-template-areasDefinition Bezeichnung für eine Zelle, Beispiel (hd, mn, sb, ft werden später für grid-area verwendet):

"hd hd hd hd hd hd hd hd hd"
"mn mn mn mn mn mn mn sb sb"
"ft ft ft ft ft ft ft ft ft"
Grid Bereich festlegengrid-areaDefinition in welchen Bereich die aktuelle Klasse im Grid eingefügt wird (hd, mn, sb, ft im Beispiel)
Spaltenabstandcolumn-gapGröße
Zeilenabstandrow-gapGröße
Spalten/ZeilanbstandgapZeilenabstand Spaltenabstand oder nur einen Größe dann für Spalte/Zeile gleiche Abstand
Positionierung/Spanning (kurz)grid-column
grid-row
Anfang / Ende (Bespiel: 2/4)
Negative Werte: vom gegenüberliegenden Rand aus gesehen (oder Wrap nach links von der aktuellen Position weg)
"span x" für row/colspan
Positionierung/Spanning (lang)grid-column|row-start
grid-column|row-end
absolute Position
negative Werte relativ von start/end oder rechten/unteren Rand
"span x" für row/colspan
Positionierung/Spanning (superkurz)grid-arearow-start / col-start / row-end / col-end
Inhaltspositionierung place-contentalign-content justify-content
Reihenfolge ändernorderAnzahl Positionen links (-) oder rechts

https://cssgridgarden.com

CSS Flex Cheat Sheet

display:flex

Hauptachse festlegenflex-directionrow (d), row-reverse, column, column-reverse
Items auf Hauptachse anordnenjustify-contentflex-start (d), flex-end, center, space-between, space-around, space-evenly
Items auf Querachse andordnen
(Space/Verteilung: gleich)
align-itemsflex-start, flex-end, center, baseline, stretch (d)
Items auf Querarchse spacenalign-contentflex-start, flex-end, center, space-between, space-around, space-evenly, stretch (d)
Umbruch auf Hauptachseflex-wrapnowrap (d), wrap, wrap-reverse
Zelle(n) auf Querachse anordnen (anstatt Hauptachse)align-selfflex-start, flex-end, center, baseline, stretch
Hauptachse + Umbruch dortflex-flowflex-direction flex-wrap
Startgröße einer Zelleflex-basisGröße, auto
Anteilsmäßige Veränderungflex-grow
flex-shrink
0-1
Reihenfolge der Items ändernorderAnzahl Positionen links (-) oder rechts

https://flexboxfroggy.com

USB Power Save verhindern

Wenn ein Gerät (Kartenleser in meinem Fall) nicht ausgeschaltet werden soll kann man das entsprechende Hakerl im Device Manager setzen (“Allow the computer to turn off this device to save power”) oder wenn mans automatisiert machen will diesen Registrywert setzen:

HKLM/SYSTEM/CurrentControlSet/Enum/USB/VID_xxxx&PID_yyyy/Device Parameters/WDF/IdleInWorkingState = 0 (REG_DWORD)

xxxx/yyyy naturgemäß durch die Werte vom jeweiligen Gerät ersetzen. Nach Reboot ist das Hakerl im GUI weg und das Gerät auf Always On.

Tailwind CSS Intellisense mit Code in Giraffe Projekt

Die Tailwind CSS Intellisense Extension für VS Code kann nicht mit der F# Syntax für die HTML Objekte bei der Defaultmethode von Giraffe umgehen – dazu muss man diese Settings in die .config einfügen:

    "tailwindCSS.includeLanguages": {
        "fsharp": "html"
    },
   "tailwindCSS.experimental.classRegex": [
       "_class\\s+\"([^\"]*)\""
    ]