Por enquanto, aqui está o script de shell que estou usando.
#!/bin/bash
SUBUID=/etc/subuid
SUBGID=/etc/subgid
for i in $SUBUID $SUBGID; do [[ -f "$i" ]] || { echo "ERROR: $i does not exist, but is required."; exit 1; }; done
[[ -n "$1" ]] && USERS=$1 || USERS=$(awk -F : '{x=x " " $1} END{print x}' $SUBUID)
for i in $USERS; do
awk -F : "\ ~ /$i/ {printf(\"%-16s sub-UIDs: %6d..%6d (%6d)\", \ \",\", \, \+\, \)}" $SUBUID
awk -F : "\ ~ /$i/ {printf(\", sub-GIDs: %6d..%6d (%6d)\", \, \+\, \)}" $SUBGID
echo ""
done
Sintaxe:
showsubids [username]
Se nenhum nome de usuário for fornecido, todos serão listados. Se um nome de usuário for dado, somente as entradas serão mostradas.
O tratamento de erros é insatisfatório, mas ajuda alguém ...