Não, você não poderá descobrir quem tem acesso aos direitos do sudo se você mesmo não tiver acesso diretamente. Você poderia "voltar a ele" ao ver quais usuários, se algum, são membros da "roda" do grupo Unix.
Exemplo
Isso mostra que o usuário "saml" é um membro do grupo wheel.
$ getent group wheel
wheel:x:10:saml
Ser um membro do grupo "wheel" normalmente permite direitos completos de sudo por meio dessa regra, que geralmente está em um arquivo sudoers de sistemas, /etc/sudoers
.
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
Mas não há garantias de que o administrador de um determinado sistema tenha decidido conceder sudo
os direitos dessa maneira. O tão facilmente poderia ter feito assim:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
saml ALL=(ALL) ALL
Nesse caso, sem sudo
direitos, você nunca obteria acesso ao arquivo /etc/sudoers
do sistema para ver essa entrada.
E sobre / etc / groups
Este arquivo mostra apenas os usuários que têm um segundo, terceiro, etc. grupo associado a eles. Muitas vezes, as contas de usuário têm apenas um único grupo associado. Nesse caso, você precisa usar um comando ligeiramente diferente para descobrir o grupo principal de um determinado usuário:
$ getent passwd saml
saml:x:1000:1000:saml:/home/saml:/bin/bash
Aqui, o usuário "saml" tem o grupo principal 1000. Esse GID equivale a esse grupo:
$ getent group 1000
saml:x:1000:saml
Mas nada disso realmente informa a você quais contas de usuários têm sudo
direitos.
Por que o grande segredo?
Tudo isso é feito para impedir o que é conhecido como ataque do canal lateral . O vazamento de informações, como quais contas têm privilégios, forneceria informações importantes para um invasor, se elas pudessem obter acesso a qualquer conta em um determinado sistema. Muitas vezes, é melhor mascarar essas informações de qualquer conta sem privilégios.