Interoperabilidade

Gerenciando a senha raiz do seu Mac

Chris Stoneff

 

Visão geral:

  • Elevando os privilégios no Mac
  • Habilitando a conta raiz
  • Disponibilizando o comando sudo para os usuários

A situação básica de um Macintosh executando OS X não é muito diferente do Windows Vista com o UAC (Controle de Conta de Usuário) ainda habilitado: seus direitos de administrador são eliminados, a conta raiz ou de administração é desabilitada, e é solicitado que você eleve seus direitos sempre que faz algo que exige privilégios de administrador. No Windows Vista, provavelmente você já sabe como gerenciar e usar sua conta de administrador quando precisar dela. Mas, se você é iniciante no Mac, talvez isso não seja tão óbvio.

Em um Mac, para realizar funções administrativas (especialmente no Terminal), você precisará ser capaz de emitir o comando sudo, que exige autenticação. Isso é fácil — da forma como os Macs são configurados para uso imediato, basta redigitar sua senha para fornecer a autenticação necessária.

Algumas pessoas diriam que é fácil demais. Afinal, assim como no Windows, isso significa que, se a sua senha for descoberta, roubada ou decifrada, e fornecer acesso ao seu sistema localmente ou via SSH, um invasor poderá assumir o controle do seu computador exatamente como se você tivesse habilitado a raiz (equivalente ao administrador no Windows). Ou pior, se um invasor iniciar um shell usando "sudo –s", praticamente nada será registrado no log do seu sistema.

Então, como atribuir direitos aos seus usuários de Mac conforme a necessidade e, ao mesmo tempo, aumentar a segurança? Por mais estranho que pareça, habilitando a conta raiz.

Por padrão, o OS X tem a conta raiz desabilitada, seguindo medidas de segurança genéricas. O problema é que nesse estado, como já observamos, um usuário precisa apenas redigitar suas credenciais para obter privilégios elevados. Para garantir que os usuários não possam simplesmente redigitar suas credenciais para obter acesso (de administrador) em nível de raiz, é preciso habilitar a conta raiz, atribuindo à conta "root" uma senha. Para fazer isso, use o seu Utilitário de Diretório ou, em um Terminal, emita o seguinte comando:

sudo passwd root

Depois, siga os prompts para digitar uma nova senha (veja a Figura 1). Não se esqueça de alterar a senha regularmente.

fig1.gif

Figura 1 Criando uma senha para root (clique na imagem para ampliá-la)

Com a conta raiz habilitada, os usuários não podem mais simplesmente redigitar suas senhas para obter privilégios (de administrador) em nível de raiz. Isso permite maior granularidade na definição de privilégios, pois agora é preciso chamar uma conta separada de nível elevado para realizar funções administrativas. Essa conta pode ser gerenciada e protegida de forma independente da conta do usuário normal, com o uso de soluções de terceiros para gerar senhas aleatoriamente e armazená-las com segurança, além de fornecer uma interface delegada e auditada para a obtenção da senha, quando necessário.

Agora que isso já foi solucionado, você precisa garantir que o comando sudo esteja disponível para os usuários que precisam dele. Lembre-se dos três níveis de usuários do OS X: usuários, administradores e raiz. Por padrão, os usuários não podem emitir comandos sudo; somente administradores e usuários raiz. Se você não quiser que os usuários tenham permissões de administração, mas sim que possam emitir comandos sudo quando necessário, precisará habilitar os comandos sudo para os usuários no seu sistema OS X. Você pode fazer isso editando o arquivo /private/etc/sudoers para incluir usuários específicos ou removendo os comentários da linha de exemplo na Figura 2, que começa com "%wheel", e depois adicionando seus usuários ao grupo wheel.

fig2.gif

Figura 2 Habilitando sudo para usuários específicos (clique na imagem para ampliá-la)

Seguindo os itens descritos aqui, você pode permitir que a senha raiz dos seus sistemas Mac seja gerenciada por processos automatizados, que geram uma nova senha aleatória regularmente ou após uma recuperação de senha. Assim, é possível manter seus sistemas em conformidade com as políticas da empresa, e também com as normas estabelecidas pela PCI (Payment Card Industry) Data Security Standard, pela SOX (Sarbanes-Oxley), pela lei americana HIPAA (Health Insurance Portability and Accountability Act) e outras. Você também impedirá que usuários e administradores elevem seus privilégios de forma inconseqüente, apenas redigitando suas senhas.

Chris Stoneff é gerente de produtos da Lieberman Software, desenvolvedora de software de gerenciamento e segurança de sistemas. Sua principal motivação não é saber apenas como, mas por que as coisas funcionam de determinada maneira.