Em uma caixa linux, como faço para listar todos os usuários que possuem privilégios idênticos ao superusuário (e melhor ainda, todos os usuários em geral, juntamente com se eles podem escalar seus privilégios para esse nível ou não)?
Todos os usuários do sistema estão no arquivo /etc/passwd:
less /etc/passwd
Quem é root tem "0" como id do usuário, que é a 3ª coluna. Aqueles com "0" como grupo (4ª coluna) também podem ter alguns privilégios de root.
Em seguida, você vai querer olhar para os grupos e ver quem é um membro adicional dos grupos "root" ou "wheel" 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 está bem documentado, então não vou reproduzi-lo aqui:
less /etc/sudoers
Isso abrange as principais áreas de quem pode ter acesso root.
Para uma lista rápida de todos os usuários, tente pressionar tab duas vezes (para completar automaticamente) depois de digitar o passwdcomando seguido de um espaço. Isso sutambém funciona com o comando.
Deve ser feito como um usuário com privilégios de root.
Nenhuma das outras respostas funciona para sistemas de nível empresarial com gerenciamento de permissões baseado em LDAP. Tente o seguinte comando que funciona universalmente em todas as configurações para verificar se um usuário tem acesso sudo:
ps -jf 1 | tail -n 1 | awk '{print $1}'fornece o nome do superusuário em qualquer sistema operacional baseado em unix sem dependências extras e opera se invocado via pwsh/pwsh-preview, etc.
Embora esta resposta forneça bem essa capacidade, ela não opera via PowerShell, porque The '<' operator is reserved for future use., e requer a instalação do perl, que não é necessário disponível e não está disponível por padrão no macOS, o que pode ser importante.
Não se esqueça de alterar a senha do root. Se algum usuário tiver UID 0 além de root, ele não deveria. 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 root:
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 programas sejam executados com privilégios de root:
find / -perm -04000
Para ver quem é o UID 0:
Para ver quem está nos grupos
root
,wheel
adm
eadmin
:Para listar todos os usuários e os grupos dos quais são membros:
A raiz pura é o ID do usuário "0".
Todos os usuários do sistema estão no arquivo /etc/passwd:
Quem é root tem "0" como id do usuário, que é a 3ª coluna. Aqueles com "0" como grupo (4ª coluna) também podem ter alguns privilégios de root.
Em seguida, você vai querer olhar para os grupos e ver quem é um membro adicional dos grupos "root" ou "wheel" ou "admin":
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 está bem documentado, então não vou reproduzi-lo aqui:
Isso abrange as principais áreas de quem pode ter acesso root.
Para imprimir todos os usuários
Para imprimir apenas os usuários com UID 0, sendo como outros já disseram, os usuários com privilégios de root implícitos:
Para uma lista rápida de todos os usuários, tente pressionar tab duas vezes (para completar automaticamente) depois de digitar o
passwd
comando seguido de um espaço. Issosu
também funciona com o comando.Deve ser feito como um usuário com privilégios de root.
Estava me irritando que não houvesse uma resposta de uma linha ... Se você quiser listar todas as contas UID 0 (root) use o seguinte:
melhor,
Nenhuma das outras respostas funciona para sistemas de nível empresarial com gerenciamento de permissões baseado em LDAP. Tente o seguinte comando que funciona universalmente em todas as configurações para verificar se um usuário tem acesso sudo:
ps -jf 1 | tail -n 1 | awk '{print $1}'
fornece o nome do superusuário em qualquer sistema operacional baseado em unix sem dependências extras e opera se invocado via pwsh/pwsh-preview, etc.Embora esta resposta forneça bem essa capacidade, ela não opera via PowerShell, porque
The '<' operator is reserved for future use.
, e requer a instalação do perl, que não é necessário disponível e não está disponível por padrão no macOS, o que pode ser importante.