Em uma caixa Linux, como listar todos os usuários que possuem privilégios de root (e, melhor ainda, todos os usuários em geral, juntamente com se têm ou não root)?
Em uma caixa Linux, como listar todos os usuários que possuem privilégios de root (e, melhor ainda, todos os usuários em geral, juntamente com se têm ou não root)?
Respostas:
Não esqueça de alterar a senha root. Se algum usuário tiver UID 0 além do root, não deve. Péssima ideia. Checar:
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 a execução de programas com privilégios de root:
find / -perm -04000
grep '[^:]*:[^:]*:0:' /etc/passwd
. +1 em particular para verificar o SUID.
Para ver quem é o UID 0:
getent passwd 0
Para ver quem está em grupos root
, wheel
adm
e admin
:
getent group root wheel adm admin
Para listar todos os usuários e os grupos dos quais são membros:
getent passwd | cut -d : -f 1 | xargs groups
getent passwd
invés disso, está correta. Só não se esqueça de verificar / etc / sudoers.
Raiz pura é o ID do usuário "0".
Todos os usuários do sistema estão no arquivo / etc / passwd:
less /etc/passwd
Aqueles que são root possuem "0" como o ID do usuário, que é a 3ª coluna. Aqueles com "0" como o grupo (quarta coluna) também podem ter alguns privilégios de root.
Em seguida, você deseja examinar os grupos e ver quem é um membro adicional dos grupos "raiz", "roda" ou "administrador":
less /etc/group
Os usuários listados nesses grupos podem ter alguns privilégios de root, especialmente através do comando "sudo".
A última coisa que você deseja verificar é a configuração "sudo" e veja quem está listado como tendo autorização para executar este comando. Este arquivo em si está bem documentado, portanto não o reproduzirei aqui:
less /etc/sudoers
Isso abrange as principais áreas de quem poderia ter acesso root.
consolehelper
e PackageKit
.)
getent passwd
deve listar todos os usuários do sistema (incluindo raiz), no formato passwd, independentemente do banco de dados em que estão definidos.
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 já foi dito, os usuários com privilégios de root implícitos:
perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
getent passwd
vez disso. Para o seu primeiro "imprimir todos os usuários" exemplo, em vez tente o seguinte:getent passwd | perl -naF: -e 'print "$F[0]\n"'
Para obter uma lista rápida de todos os usuários, tente pressionar a guia duas vezes (para concluir automaticamente) depois de digitar o passwd
comando seguido por um espaço. Isso funciona com o su
comando também.
Deve ser feito como um usuário com privilégios de root.