Como verificar se um usuário normal tem privilégios de superusuário

3

Eu quero verificar se um usuário normal tem privilégios de superusuário (significa privilégios de root). Meu SO é RHEL 6 e verifiquei o arquivo de configuração /etc/passwd , mas não uso. Por favor, me diga qualquer método para encontrar os privilégios atuais dos usuários na máquina Linux.

    
por Jayakrishnan T 11.08.2011 / 13:45

4 respostas

10

No passado, o modelo raiz no mundo Unix era fácil. uid 0, você é a raiz e você tem poder total para tudo. As coisas mudaram um pouco, no entanto.

suid bit

Os arquivos podem ser concedidos com suid bit para que possam ser executados como root, mesmo por usuários comuns. OK, isso pode ter sido no Unix original. : -)

grupos

Se um usuário pertencer ao grupo 0, ele poderá não ter privilégios completos de root, mas ainda poderá ver muitas coisas que não devem ser vistas. Também em algumas distribuições wheel group é algo em que você deve ficar atento - os usuários pertencentes a esse grupo podem su seu caminho para o root se souberem a senha do root.

sudo

Além do tradicional su , o comando sudo permite restringir certos usuários / grupos para executar apenas alguns comandos como root. Verifique isso com visudo .

acesso ssh

Com o ssh, é possível gerar uma chave ssh com a qual você pode se conectar como root, mas use apenas os comandos x, y e z. Isso geralmente é usado em tarefas como backup, em que o processo de backup deve ter acesso a todos os arquivos no sistema.

capacidades

O kernel Linux ganhou recursos que podem conceder acesso a certos subsistemas, como interfaces de rede ou dispositivos de bloco. Veja esta lista .

Papéis do SELinux

Se a estrutura de segurança SELinux estiver habilitada em seu sistema, o SELinux também terá acesso baseado em função. Veja o guia do Fedora sobre o SELinux .

    
por 11.08.2011 / 14:03
2

Os privilégios de superusuário são dados por UID (userid) 0. grep para o usuário do arquivo / etc / password. O primeiro campo numérico após o usuário é o UID e o segundo é o GID (groupid). Se o usuário não for o UID 0, ele não terá privilégios de root. Isto não cobre permissões extras que eles possam ter estando em um grupo apropriado (roda, ninguém, etc), mas eles não são superusuários. Se você ainda está incerto sobre o que este usuário pode ou não fazer, simplesmente su para aquele usuário (su - username) e veja o que você pode fazer. Você pode tocar em um arquivo em um diretório que não possui? Se não, você não é superusuário. Espero que isso tenha ajudado.

ex: nobody: x: 99: 45: Ninguém: /: / sbin / nologin

Ninguém é o nome de usuário, 99 é o uid, 45 é o gid.

    
por 11.08.2011 / 13:51
2

Um usuário pode obter direitos indiretos de "superusuário" dando o direito através de um programa chamado sudo .

Com sudo você pode especificar qual usuário ou grupo pode executar certos programas com privilégios de superusuário.

    
por 11.08.2011 / 13:57
1

Um usuário geralmente não tem privilégios de superusuário. Mas há três maneiras que me veio à mente que um usuário normal (ou seja, UID! = 0) pode obter privilégios de root.

  1. Ele executa algo com o s-bit do root. Você pode encontrar isso pesquisando todo o seu sistema de arquivos para tais arquivos (use find).
  2. Ele altera o ID do usuário (comando su) - mas isso pode ser feito por todos os usuários, desde que ele conheça a senha raiz (portanto, não forneça sua senha root para proibi-la).
  3. sudo. Basta verificar o / etc / sudoers que os usuários podem executar com permissões de root.
por 11.08.2011 / 13:56