Como verificar usuario root no Linux através de Shell Script?

8 respostas
S

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…

8 Respostas

P

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

L

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…

Já tentou usar o comando whoami

T

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
S

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!

C

E se o usuário não se chamar root, entretanto tiver permissões de root? Isto não é incomum.

G

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

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

P

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.

Criado 30 de maio de 2008
Ultima resposta 3 de mar. de 2011
Respostas 8
Participantes 8