Como faço pra identificar se o usuario está ou não logado como root pelo shell script?
Quero algo generico que funcione em qualquer distribuição…
Por exemplo
“$USER” = "root"
funciona apenas no ubuntu… mas nao funciona no fedora…
Como faço pra identificar se o usuario está ou não logado como root pelo shell script?
Quero algo generico que funcione em qualquer distribuição…
Por exemplo
“$USER” = "root"
funciona apenas no ubuntu… mas nao funciona no fedora…
Provavelmente no fedora nem tem no profile a criação da variavel USER, basta alterar o profile, mas pra deixar isso independente de variavel use o comando uname pra saber o usuario e grupo do usuario
[quote=schkr4b]Como faço pra identificar se o usuario está ou não logado como root pelo shell script?
Quero algo generico que funcione em qualquer distribuição…
Por exemplo
“$USER” = "root"
funciona apenas no ubuntu… mas nao funciona no fedora…[/quote]
Já tentou usar o comando whoami
Um exemplo do que o Luiz Claudio disse:
Lembre-se que whoami tem de ser cercado por backquotes (caracter ASCII 96), ou seja, `
if [ `whoami` == 'root' ] then
echo I am root
else
echo I am not root
fi
Obrigado.
Problema foi resolvido utilizando o whoami
O uname mostra dados do sistema apenas… Não mostrou nada do usuario…
Dei uma olhada no --help e n falou nada a respeito…
Vlw galera!
E se o usuário não se chamar root, entretanto tiver permissões de root? Isto não é incomum.
Verdade… nesse caso pode ser feito teste pelo ID do usuário, com o comando id -u. Usuários com poder de root tem o ID = 0.
A forma mais seguro seria se você verificasse através do uid, se ele for 0 é root, caso contrario, não é root.
#!/bin/bash
if [ "$(id -u)" != "0" ]; then
echo
echo "Voce deve executar este script como root! "
else
echo "Voce e root!"
fi
Outra alternativa
if [ “$UID” -ne 0 ]
then
echo "Voce deve ter poder de root par executar este scrip."
exit
fi
fonte: baseado no exemplo de “Advanced Bash-Scripting Guide”, capitulo 2, pg 4.