Estou tentando escrever um script que automatize a instalação de portas/pacotes em novas instalações do FreeBSD. Para isso, o usuário que executa o script deve ser o root.
O sistema é "suposto" para ser virgem bash
e sudo
pode ou não ser instalado; então estou tentando contabilizar isso. Para fazer isso, estou verificando se o ID do usuário é igual a 0.
O problema é que, entre bash e sh, as variáveis de ambiente são diferentes:
- bash -> $EUID (todos em maiúsculas)
- sh -> $euid (todos inferiores)
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:Talvez assim:
Parece que você pode simplesmente testar
$UID == 0
em ambos os shells. Como o nomeroot
não é a parte importante e você pode realmente ter um usuário nomeadoroot
com um UID diferente de zero ou uma conta UID 0 com nome diferente deroot
, essa pode ser uma maneira melhor de verificar se o script está sendo executado como um usuário privilegiado.