Ist nicht so einfach möglich. Dieser wird nur einmal angezeigt und ist nicht per script auslesbar. Man müsste einen neuen Key generieren und das Adminpasswort per GUI oder Parameter übergeben, erst dann bekommt man einmalig den Key angezeigt.
Hier ein Beispielscript mit GUI….
#!/bin/bash # # filevault-newkey.sh # Generiert einen neuen persönlichen FileVault-Recovery-Key und zeigt ihn an. # Der alte Key wird dabei ungültig. # set -euo pipefail # --- root sicherstellen --- if [[ $EUID -ne 0 ]]; then echo "Bitte mit sudo ausführen: sudo $0" exit 1 fi # --- FileVault-Status prüfen --- if ! fdesetup status | grep -q "FileVault is On"; then echo "FileVault ist nicht aktiv. Abbruch." exit 1 fi # --- Admin-Passwort sicher einlesen --- read -rsp "Passwort des FileVault-Benutzers: " PW echo # --- Neuen Key generieren --- OUTPUT=$(fdesetup changerecovery -personal -inputplist <<EOF <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Password</key> <string>${PW}</string> </dict> </plist> EOF ) # Passwort aus dem Speicher entfernen unset PW # --- Key extrahieren --- KEY=$(echo "$OUTPUT" | awk -F'= ' '/recovery key/{print $2}') if [[ -z "$KEY" ]]; then echo "Konnte keinen neuen Key ermitteln. Rohausgabe:" echo "$OUTPUT" exit 1 fi echo echo "==========================================" echo " Neuer FileVault Recovery Key:" echo " $KEY" echo "==========================================" echo "Sicher notieren – der alte Key ist jetzt ungültig."
Das Passwort wird interaktiv abgefragt, steht also nicht im Script. Es landet kurz in der Plist im Heredoc (im Prozessspeicher) – unvermeidbar, da fdesetup es so erwartet.
Log in to comment and vote
Comments1
Stefan Steuer
May 30
Ist nicht so einfach möglich. Dieser wird nur einmal angezeigt und ist nicht per script auslesbar. Man müsste einen neuen Key generieren und das Adminpasswort per GUI oder Parameter übergeben, erst dann bekommt man einmalig den Key angezeigt.
Hier ein Beispielscript mit GUI….
#!/bin/bash # # filevault-newkey.sh # Generiert einen neuen persönlichen FileVault-Recovery-Key und zeigt ihn an. # Der alte Key wird dabei ungültig. # set -euo pipefail # --- root sicherstellen --- if [[ $EUID -ne 0 ]]; then echo "Bitte mit sudo ausführen: sudo $0" exit 1 fi # --- FileVault-Status prüfen --- if ! fdesetup status | grep -q "FileVault is On"; then echo "FileVault ist nicht aktiv. Abbruch." exit 1 fi # --- Admin-Passwort sicher einlesen --- read -rsp "Passwort des FileVault-Benutzers: " PW echo # --- Neuen Key generieren --- OUTPUT=$(fdesetup changerecovery -personal -inputplist <<EOF <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Password</key> <string>${PW}</string> </dict> </plist> EOF ) # Passwort aus dem Speicher entfernen unset PW # --- Key extrahieren --- KEY=$(echo "$OUTPUT" | awk -F'= ' '/recovery key/{print $2}') if [[ -z "$KEY" ]]; then echo "Konnte keinen neuen Key ermitteln. Rohausgabe:" echo "$OUTPUT" exit 1 fi echo echo "==========================================" echo " Neuer FileVault Recovery Key:" echo " $KEY" echo "==========================================" echo "Sicher notieren – der alte Key ist jetzt ungültig."Nutzung:
bash
chmod +x filevault-newkey.sh sudo ./filevault-newkey.shHinweise:
Das Passwort wird interaktiv abgefragt, steht also nicht im Script. Es landet kurz in der Plist im Heredoc (im Prozessspeicher) – unvermeidbar, da
fdesetupes so erwartet.