zsh: use sudo inside o4-sops-machine-key-*

This commit is contained in:
2026-05-17 11:49:57 +08:00
parent 39e8a220d8
commit 77892cff01
+9 -12
View File
@@ -73,29 +73,26 @@ O4_SOPS_MACHINE_KEY_DIR="/var/lib/sops-nix"
O4_SOPS_MACHINE_KEY_FILE="$O4_SOPS_MACHINE_KEY_DIR/key.txt" O4_SOPS_MACHINE_KEY_FILE="$O4_SOPS_MACHINE_KEY_DIR/key.txt"
o4-sops-machine-key-init () { o4-sops-machine-key-init () {
# check sudo # use sudo echo "require sudo" to get sudo
if [[ $EUID -ne 0 ]]; then sudo echo "require sudo" > /dev/null
echo "require root" >&2
return 1
fi
# check folder and file # check folder and file
local key_dir="$O4_SOPS_MACHINE_KEY_DIR" local key_dir="$O4_SOPS_MACHINE_KEY_DIR"
local key_file="$O4_SOPS_MACHINE_KEY_FILE" local key_file="$O4_SOPS_MACHINE_KEY_FILE"
mkdir -p $key_dir sudo mkdir -p $key_dir
if [[ -f "$key_file" ]]; then if [[ -f "$key_file" ]]; then
echo "key exists: $key_file" >&2 echo "key exists: $key_file" >&2
return 1 return 1
fi fi
# keygen # keygen
install -d -m 0700 -o root -g root $key_dir sudo install -d -m 0700 -o root -g root $key_dir
age-keygen -o $key_file sudo age-keygen -o $key_file
chmod 0400 $key_file sudo chmod 0400 $key_file
age-keygen -y $key_file sudo age-keygen -y $key_file
# print pub key # print pub key
grep "^# public key: " $key_file | cut -d ' ' -f 4 sudo grep "^# public key: " $key_file | cut -d ' ' -f 4
} }
o4-sops-machine-key-print-pubkey () { o4-sops-machine-key-print-pubkey () {
@@ -105,6 +102,6 @@ o4-sops-machine-key-print-pubkey () {
return 1 return 1
fi fi
grep "^# public key: " $key_file | cut -d ' ' -f 4 sudo grep "^# public key: " $key_file | cut -d ' ' -f 4
} }