Como faço para listar todos os usuários com root?

30

Em uma caixa linux, como faço para listar todos os usuários que têm privilégios de root (e melhor ainda, todos os usuários em geral, juntamente com se eles têm root ou não)?

    
por Eric 02.12.2010 / 15:33

5 respostas

39

Não se esqueça de alterar a senha do root. Se algum usuário tiver UID 0 além do root, ele não deveria. Péssima ideia. Para verificar:

grep 'x:0:' /etc/passwd

Novamente, você não deve fazer isso, mas para verificar se o usuário é membro do grupo raiz:

grep root /etc/group

Para ver se alguém pode executar comandos como root, verifique sudoers:

cat /etc/sudoers

Para verificar o bit SUID, que permite que os programas sejam executados com privilégios de root:

find / -perm -04000

    
por 02.12.2010 / 15:41
27

Para ver quem é o UID 0:

getent passwd 0

Para ver quem está nos grupos root , wheel adm e admin :

getent group root wheel adm admin

Para listar todos os usuários e os grupos dos quais eles são membros:

getent passwd | cut -d : -f 1 | xargs groups
    
por 02.12.2010 / 16:32
5

A raiz pura é o ID do usuário "0".

Todos os usuários no sistema estão no arquivo / etc / passwd:

less /etc/passwd

Aqueles que são root têm "0" como o ID do usuário, que é a terceira coluna. Aqueles com "0" como o grupo (4ª coluna) também podem ter alguns privilégios de root.

Em seguida, você desejará ver os grupos e ver quem é um membro adicional dos grupos "raiz" ou "roda" ou "admin":

less /etc/group

Os usuários listados nesses grupos podem ter alguns privilégios de root, especialmente por meio do comando "sudo".

A última coisa que você vai querer verificar é a configuração "sudo" e ver quem está listado como tendo autorização para executar este comando. Este arquivo em si é bem documentado, então não vou reproduzi-lo aqui:

less /etc/sudoers

Isso abrange as principais áreas de quem pode ter acesso root.

    
por 02.12.2010 / 15:41
2

Para imprimir todos os usuários

perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd

Para imprimir apenas os usuários com UID 0, como os outros disseram, os usuários com privilégios implícitos de root:

perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
    
por 02.12.2010 / 15:44
1

Para obter uma lista rápida de todos os usuários, tente pressionar a guia duas vezes (para completar automaticamente) depois de digitar o comando passwd seguido de um espaço. Isso funciona com o comando su também.

Deve ser feito como um usuário com privilégios de root.

    
por 16.09.2013 / 20:29