Para responder à sua pergunta, com mais precisão, não sudo
é considerado universal. Na verdade, todo o conceito de "universal" é frequentemente um arenque vermelho. Isso é especialmente verdade no que diz respeito à compatibilidade entre distros. Uma vez que você joga na multiplicidade de versões diferentes de software, a universalidade se torna semi-irrealista. Script por natureza é pragmático, se fosse pedante, escrever scripts portáteis seria praticamente impossível.
Normalmente, avalio meu ambiente de execução pretendido, uma distribuição Linux semi-moderna, espero um shell POSIX com o GNU Utils comum. Para scripts que podem ser executados fora do Linux, espero apenas o padrão POSIX completo. Obviamente, muitos scripts são específicos para Linux, ou específicos para distribuição, de modo que muitas vezes diminuem o escopo da portabilidade.
Para abordar seu caso de script específico,
#!/bin/sh
## Exit Point
die() {
[ -n "$2" ] && echo "$2"
exit $1
}
## Require SuperUser Execution, Otherwise Re-Execute
[ `id -u` -ne 0 ] && {
command -v lsb_release > /dev/null && {
DISTRO="`lsb_release -is`"
[ "$DISTRO" = "Ubuntu" ] && SUPERUSER='sudo'
}
SUPERUSER="${SUPERUSER:-su}"
case "$SUPERUSER" in
su)
su -c "$0"
;;
sudo)
sudo "$0"
;;
esac
}
## Require SuperUser Execution
[ `id -u` -ne 0 ] && die 78
echo 'Script Executed by UID'
id -u
## Clean Up
die 0
esse script colado é um elogio do shell POSIX, eu sempre escrevo compatível com Dash.
sudo
pode ser agrupado na maioria das distribuições, mas nem todas configuram todos os usuários como capazes de executá-las.