O melhor pedaço da Maçã.

Segurança no mundo Apple: identificação do usuário (UID e UUID)

Painel de usuários

Todo sistema operacional baseado em Unix (especificação POSIX) utiliza-se de valores numéricos para identificação de usuários e grupos. Esta numeração é atribuída como propriedade dos objetos (diretório e arquivos) para identificação e relacionamento com o seu proprietário e grupo associado. No OS X, o atributo numérico usado para identificar contas de usuários com os respectivos arquivos e diretórios de sua propriedade é chamado de User ID (ou UID).

Publicidade

O UID é “único” para cada conta de usuário criada no sistema local, embora sobreposições sejam possíveis. O OS X reserva a faixa entre 500 e 2.147.483.648 para os usuários criados através do painel Usuários & Grupos. IDs abaixo de 100 são reservados para contas de serviços do sistema, enquanto o ID 0 (zero) é reservado para a conta do system administrador (root). Além disso, se você excluir um usuário, o ID do usuário deletado será liberado e utilizado pelo sistema na criação de um novo.

É importante notar que cada User ID é “único” entre as contas criadas dentro de cada sistema local. Outros computadores Mac também utilizam a mesma faixa de IDs, portanto, usuários distintos em sistema distintos podem ter o mesmo número ID. Para resolver esse problema, a Apple adotou o Universally Unique ID (UUID) ou Generated UID (GUID), identificação padronizada pela Open Software Foundation (OSF) como parte do framework Distributed Computing Environment (DCE) — em julho de 2005, o Internet Engineering Task Force (IETF) documentou e publicou o padrão através da RFC 4122.

O UUID é um atributo alfanumérico de 128 bits, representados por 32 dígitos hexadecimais apresentados em 5 grupos separados por hífens, totalizando 340.282.366.920.938.463.463.374.607.431.768.211.456 possibilidades distintas de hash, a qual é gerada pelo OS X durante a criação de uma conta no sistema. Uma vez criada, nenhum outro sistema Mac em qualquer lugar no mundo irá gerar a mesma hash por questões que envolvem hardware e software, tornando o UUID único no espaço e tempo.

Publicidade

No OS X, o UUID é usado localmente para referenciar a senha ao usuário, adesão a grupos e permissões em arquivos. Em serviços de Autenticação e Diretório que utilizam LDAP, como por exemplo Open Directory (Apple) e Active Directory (Microsoft), o UUID é vinculado à conta de usuário e grupo, tornando-o único e identificável dentro de um ambiente de rede.

Para visualizar e editar os atributos de um usuário, autentique-se como administrador no painel Usuários & Grupos e dê um Ctrl + clique (botão direito) sobre o usuário. Assim, será apresentada a opção avançada. Em geral, depois que um ID de usuário é atribuído, você não deve alterar o ID do usuário. O mesmo UID pode ser associado manualmente a diferentes usuários, mas isto pode ser um risco, pois dois usuários com o mesmo ID terão as mesmas permissões POSIX. No entanto, cada usuário tem um UUID exclusivo que pode ser definido em conjunto com as permissões ACL a fim de impedir que usuários acessem arquivos e pastas de outro com o mesmo UID.

Painel de usuários

Ainda sobre o assunto identificação do usuário, e alinhado com o último artigo publicado, podemos implementar técnicas para ofuscar informações relacionadas a usuários do sistema. Isso cria barreiras para usuários com pouco conhecimento técnico, ou que não dominam profundamente o OS X.

Publicidade

O processo é simples: basta criar ou modificar uma conta de usuário Administrador ou Padrão (por questões de segurança, é interessante ocultar o administrador do sistema), alterar o UID do usuário para um número entre 101 e 499 e, em seguida, modificar a propriedade da LoginWindow. Executando estas ações, o usuário não será exibido na tela de login, troca rápida de usuários e painel Usuários & Grupos. Entretanto, a pasta Home do usuário continuará sendo apresentada no caminho padrão do sistema, o que poderia levar à descoberta do usuário criado. Desta forma, iremos modificar o caminho da pasta Home do usuário “oculto” para um local fora do convencional do sistema — removendo também o diretório Public, para inibir o compartilhamento da pasta caso o serviço seja habilitado.

Abra o Terminal e digite essa sequência de comandos:

Publicidade

Para modificar o UID do usuário (teste), colocando-o abaixo de 500:

[code lang=”cpp”]sudo dscl . -change /Users/teste UniqueID $(dscl . -read /Users/teste UniqueID | sed ‘s/[^0-9]//g’) 499[/code]

Para modificar a propriedade do LoginWindow, “ocultando” o usuário teste:

[code lang=”cpp”]sudo defaults write /Library/Preferences/com.apple.loginwindow Hide500Users -bool TRUE
sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array teste[/code]

Para modificar o caminho padrão da Home do usuário teste:

[code lang=”cpp”]sudo dscl . -change /Users/teste NFSHomeDirectory /Users/teste /var/.teste[/code]

Para mover a pasta Home do usuário teste para o local especificado e redefinir as permissões, já que modificamos o UID para 499:

[code lang=”cpp”]sudo mv /Users/teste /var/.teste
sudo chown -R teste /var/.teste[/code]

Para inibir o compartilhamento da pasta Public do usuário teste:

[code lang=”cpp”]sudo rm -R /var/.teste/Public[/code]

Para que estas modificações tenham efeito, você precisa executar os comandos através de um segundo usuário administrador, informando a senha de system administrador (root).

Atenção: estas modificações são críticas para o usuário que será “ocultado”, então, se você não tem conhecimento, não faça!

Ver comentários do post

Compartilhe este artigo
URL compartilhável
Post Ant.

Testes mostram que performance da bateria do novo iPad é praticamente igual à do iPad 2

Próx. Post

↪ Safari é atualizado e chega à versão 5.1.5

Posts Relacionados