Eu verificaria o valor de id -u
, que é especificado para:
Output only the effective user ID, using the format "%u\n".
Talvez seja assim:
if [ $(id -u) -eq 0 ]
then
: root
else
: not root
fi
Eu estou tentando escrever um script que automatiza a instalação de ports / packages em novas instalações do FreeBSD. Para fazer isso, o usuário que executa o script deve ser root.
O sistema "supostamente" é virgem, significando que bash
e sudo
podem ou não ser instalados; então estou tentando explicar isso. Para fazer isso, estou verificando se o ID do usuário é igual a 0.
O problema é que, entre o bash e o sh, as variáveis de ambiente são diferentes:
Existe uma maneira diferente da variável de ambiente para verificar o usuário root ou devo apenas ajustar a verificação do usuário com base no ambiente?
Eu verificaria o valor de id -u
, que é especificado para:
Output only the effective user ID, using the format "%u\n".
Talvez seja assim:
if [ $(id -u) -eq 0 ]
then
: root
else
: not root
fi
Parece que você pode simplesmente testar $UID == 0
nos dois shells. Como o nome root
não é a parte importante e você pode ter um usuário chamado root
com um UID diferente de zero ou uma conta UID 0 com nome diferente de root
, essa pode ser uma maneira melhor de verificar se o script está sendo executado como um usuário privilegiado.
Tags bash root freebsd bourne-shell