Como descubro se sou sudoer?

32

Como o sistema Linux se comporta quando eu não sudoer? Aqui está o que acontece se eu tentar usar o sudo:

server:/tmp>$ sudo cal
[sudo] password for user:
Sorry, try again.

É possível que eu simplesmente não saiba minha senha ou isso significa que eu não sou sudoer? (Em outro sistema de máquina impresso, não sou invasor e o incidente será relatado)

Rasto
fonte
Resposta melhor do que qualquer uma das
opções

Respostas:

40

Para saber se um usuário em particular está tendo acesso ao sudo ou não, podemos usar -le -Uopções juntos.

Por exemplo,

Se o usuário tiver acesso ao sudo, ele imprimirá o nível de acesso ao sudo para esse usuário específico.

   $ sudo -l -U pradeep
     User pradeep may run the following commands on this host:
     (ALL : ALL) ALL

Se o usuário não tiver acesso ao sudo, ele imprimirá que ele não tem permissão para executar o sudo no localhost.

   $ sudo -l -U pradeep.c
     User pradeep.c is not allowed to run sudo on localhost.
pradeepchhetri
fonte
4
Isso não funciona para mim. Em vez de dar-me informações que me pede senha novamente: server:/home/drasto>$ sudo -l -U drasto [sudo] password for drasto:Há Red Hat distro no servidor se isso ajuda
Rasto
9

Você pode usar a -lbandeira para listar seus privilégios.

-l[l] [command]
   If no command is specified, the -l (list) option will list the allowed (and forbidden)
   commands for the invoking user (or the user specified by the -U option) on the current
   host.  If a command is specified and is permitted by sudoers, the fully-qualified path
   to the command is displayed along with any command line arguments.  If command is
   specified but not allowed, sudo will exit with a status value of 1.  If the -l option
   is specified with an l argument (i.e. -ll), or if -l is specified multiple times, a
   longer list format is used.

Se você não estiver no arquivo, deverá receber o erro "não está no arquivo sudoers" que você viu na outra máquina.

Kevin
fonte
2
Isso também não funciona para mim. Apenas me pede a senha:server:/home/drasto>$ sudo -l [sudo] password for drasto:
Rasto
1
Coloque sua senha
Kevin
1
@Kevin @Michael Minha senha não funciona. Eu sei apenas sobre uma senha para esse servidor e essa é a que eu uso para fazer login no servidor. Essa simplesmente não funciona quando me pedem minha senha do sudo (tentei cerca de 100 vezes, capslock, numlock, etc.). Mas todo o pensamento não faz sentido! Quero saber se tenho privilégios de sudo, mas para descobrir, preciso de privilégios de sudo ?! Para executar sudo -l, preciso da senha do sudo? Então eu tenho que ser root para saber se sou root ?!
Rasto
1
@drasto Como a conta disse, sudoestá procurando sua senha de login. Portanto, se você tentou isso e não funciona, o sudo está terrivelmente mal configurado ou você está em algum tipo de prisão em que não consegue ver ou ler os arquivos adequados. De qualquer forma, você não tem nenhuma permissão sudo.
Kevin
1
@ Kevin Então eu provavelmente estou nessa prisão de algum tipo. Na verdade, acho que não deveria ter essas permissões de sudo nessa máquina. Então, fiquei surpreso quando me pediu minha senha do sudo em primeiro lugar. De qualquer forma, é exatamente como eu escrevi: minha senha de login não funciona.
Rasto
-1

Você pode verificar se você está no grupo sudo, usando o comando

groups

Em um shell-script, você pode querer usar isto:

if groups | grep "\<sudo\>" &> /dev/null; then
   echo yes
else
   echo no
fi
Schlacki
fonte
1
O grupo poderia ser sudo, admin, wheelacesso, ou algo completamente diferente, e mesmo com a adesão em um grupo, um usuário individual talvez negado sudo através de regras específicas (ou o contrário).
Muru
Isso tem muitos negativos negativos para o meu propósito (verificação de proteção). A resposta de Kevin é mais definitiva.
StockB