Recuperando senhas (e usuários) no Mac OS X
(Pra variar, mais uma história..)
Estava no final do expediente hoje, na Diginet, quando minha amiga Stella aparece no messenger:
17:09:34 stella: homi
17:09:37 stella: eu esqueci a senha do meu macbook
(sim.. isso mesmo.. ela cometeu esse crime..)
Depois de ter tentado acalmar ela por alguns minutos, fui pesquisar uma forma de como recuperar a bendita senha..
O site da Apple, tem um procedimento para resetar a senha de um usuário, que não requer que você tenha a senha anterior e envolve o DVD de instalação do sistema. Pensei: “Ótimo.. vai ser facílimo resolver isso..”.
Passei então para elas as instruções, e aparentemente, tudo estava OK. A surpresa veio quando ela me disse quando reiniciou o Mac. Seu usuário tinha desaparecido. Me pareceu estranho, mas como o problema ficou realmente sério, eu me propus a ir até sua casa resolver.
Depois de iniciar no modo single (segurar ’s’ durante o boot), comecei a verificar o problema e vi que realmente não havia mais referências para o usuário dela no sistema. Sua pasta home (que por sorte também não sumiu..) estava com permissão para o usuário 501, e não para o nome do usuário ( que vou chamar stella, porque, enfim.. não importa..
). Tentei iniciar os serviços do sistema, por achar que a base de dados dos usuários não tinha sido carregada, mas o problema persistia. Tentei mudar a senha do usuário com o bom e velho conhecido do linux passwd, mas era informado um erro que dizia não ter dados para poder trocar a senha. Foi então que caiu realmente a ficha que o usuário foi apagado (PS: Tenham cuidado com o DVD de instalação..).
Pois bem.. em mais um ato nerd e ninja ao mesmo tempo, misturei algumas várias informações que coletei na internet, em sites diferentes, para recriar o usuário e poder setar uma senha (a dica serve para o Mac OS X Tiger - 10.4 e para o Leopard - 10.5. Também serve para o caso de precisar apenas trocar a senha em modo single), sem perder os arquivos pessoais que estavam no home dela.
- Depois de iniciado o modo single, remontar a partição principal com permissão de escrita:
- mount -uw /
- Com a partição remontada, iniciar os serviços do sistema (caso queira apenas trocar a senha, pule para o passo 4, após esse):
- Tiger: sh /etc/rc
- Leopard: launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServices.plist
launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServicesLocal.plist - Logo após ter iniciado esses serviços, foi preciso recriar o usuário com os mesmos dados do usuário anterior. Dica: Veja quais os IDs dos usuário e grupo que estavam sendo informados no home). Segue os passos para criar um usuário administrador “na mão”.
- Criar uma entrada no domínio local de autenticação na categoria “usuários”. Repare que isso não vai criar o seu home (Mude temporariamente o nome do home anterior. No caso dela, eu mudei para stella_bkp)
- dscl / -create /Users/stella
- Setar o shell padrão para o bash
- dscl / -create /Users/stella UserShell /bin/bash
- Setar o nome real do usuário
- dscl / -create /Users/stella RealName “Stella”
- Setar o ID do usuário (lembrando que esse era o ID original do usuário)
- dscl / -create /Users/stella UniqueID 501
- Setar o ID do grupo do usuário (também era o ID original)
- dscl / -create /Users/stella PrimaryGroupID 1000
- Criar e setar o diretório home do usuário (neste caso é importante ter renomeado o diretório)
- dscl / -create /Users/stella NFSHomeDirectory /Users/stella
- Finalmente setar a senha:
- passwd stella
- Mudar o usuário para o grupo administrador (que era o caso dela)
- dscl / -append /Groups/admin GroupMembership stella
- Após ter feito isso, verifique se o diretório especificado foi criado. Se não foi, ótimo.. (a ideia do comando que sugeria isso, era apenas setar o diretório… não realmente criar). Se foi criado, remova ou renomeie (por segurança..), e torne a renomear o backup original do home para o nome do usuário:
- mv /Users/stella_bkp /Users/stella
Depois desses passos, provavelmente vai estar tudo de volta no lugar, bastando apenas reiniciar o Mac:
- reboot
Quando iniciar o sistema, em modo normal, o usuário novo (re)criado, deve aparecer na listagem, e a senha setada vai funcionar
Espero que possa ajudar mais pessoas que eventualmente tenham tido o problema.
