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.

  1. Depois de iniciado o modo single, remontar a partição principal com permissão de escrita:
    • mount -uw /
  2. 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
  3. 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
  4. Finalmente setar a senha:
    • passwd stella
  5. Mudar o usuário para o grupo administrador (que era o caso dela)
    • dscl / -append /Groups/admin GroupMembership stella
  6. 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.

    Apresentação do III EPSL

    Olá a todos :)

    Estou disponibilizando aqui, os slides da palestra que apresentei (juntamente com Italo, também da Digizap), no III EPSL. A palestra é intitulada Alta Disponibilidade com Software Livre: DRBD & Heartbeat.

    Slides da apresentação

    DivX + Legendas no Quicktime

    (Mais uma da série de dicas for Mac..)

    Acredito que não só eu, mas muitos dos companheiros de aventura no Mac já quiseram tocar vídeos no Quicktime (ou no FrontRow, que usa o core deste último) e poder colocar legendas.. sim.. legendas.. Brasileiros usam legendas nos filmes para não perder o audio original (sei que parece bizarro para um americano assistir um filme que não esteja em seu querido idioma.. talvez por isso não haja suporte nativo..). Pois bem.. um belo dia, procurando uma forma de tocar vídeos do Flash no Quicktime (e não me vem exatamente à memória o motivo disso..), descobri o Perian.

    O Perian é, como o próprio site diz, um “canivete suiço” para o Quicktime. Ele oferece o suporte à diversos formatos:

    • AVI, FLV, e MKV
    • MS-MPEG4 v1 e v2, DivX, 3ivX, H.264, FLV1, FSV1, VP6, H263I, VP3, HuffYUV, FFVHuff, MPEG1 e MPEG2 Video, Fraps, Windows Media Audio v1 e v2, Flash ADPCM, Xiph Vorbis (em Matroska), MPEG Layer II Audio
    • Suporte para AVI com: AAC, AC3 Audio, H.264, MPEG4 e MP3 com VBR

    E por último mas não menos importante:

    • Suporte para legendas nos formatos SSA ou SRT (!!!)

    Nos testes que fiz, bastou ter no mesmo diretório que o vídeo o arquivo de legenda (obviamente, com o mesmo nome de arquivo, trocando apenas a extensão). Funciona tanto no Quicktime, quanto no iTunes ou no FrontRow. Para fechar as vantagens, ele ainda é Open!

    O site do projeto é: http://perian.org

    GTER 23

    Olá a todos! Depois de alguns meses volto a escrever, de Belo Horizonte, onde está acontecendo a 23a. reunião do Grupo de Trabalho de Engenharia e Operação de Redes (GTER :) ).

    Devo elogiar a organização do evento. Tudo funcionando direitinho.. do conforto do auditório da CEMIG, à conexão wi-fi (perfeita e o link muito bom), além, é claro, dos Coffee-breaks :) (que é onde a galera troca umas ideias.. e come :D )

    Todas as palestras foram muito boas, mas queria destacar algumas:

    • Centralizando políticas de roteamento no PTT (Pedro R. Torres Jr - RNP/PoP - PR) - Pela primeira vez, vi uma palestra sobre uma implementação real de um PTT, no Brasil. (Eu sei que existem alguns em operação, principalmente nos grandes centros.. mas nunca tinha visto uma palestra sobre). Gostei do fato de eles estarem usando uma solução baseada em Unix (Quagga) para fechar as sessões BGP. Achei que era feito com Cisco ou Juniper.
    • Flowspec em ação - Experiência de uso no backbone da RNP (Ranieny Pontes - RNP) - O Raniery mostrou como foi implementado na RNP, o uso de Flowspec. A ideia de propagar ACL’s de bloqueio via BGP, fazendo com que o bloqueio chegue até o ponto mais próximo do ataque (automaticamente) é muito (muito mesmo) boa. O único porém, como Raniery disse, é que só está implementado até agora, em equipamentos Juniper. Utilizando-se da estrutura atual de BGP, e tendo uma implementação escalável, deve realmente deixar de ser utópico, à medida que outras empresas forem implementando em seus equipamentos (especialmente a Cisco..).
    • Arquitetura de Redes IPTV (Igor Giangrossi - Cisco) - A primeira palestra foi uma das melhores.. sou suspeito por gostar do assunto, mas o Igor mostrou bem as vantagens e problemas de uma IPTV “real”, e comparando com as nossas TVs por assinatura normais.
    • Tutorial DNSSEC (David R. C. Campos e Rafael Dantas Justo - Registro.br/NIC.br) - Apesar de ainda achar que não adianta ter tanta segurança no servidor DNS, e os clientes usuários de Windows continuarem com as máquinas infectadas, gostei do tema (não conhecia.. :) ). Os 2 palestrantes mostraram desde os conceitos até a implementação, tudo bem mastigado. Muito boa mesmo.

    Bem, anotei algumas coisas (o pessoal da Digi vai ouvir mais coisas que os leitores do Blog :P ), mas para quem quiser conferir como foi, basta ver o repositório das apresentações no FTP do Registro.br.

    Também quero agradecer à direção da Diginet/Digizap por ter patrocinado toda a viagem :)

    OBS: Quero ir aos outros :D

    Códigos de processadores para IRQs no Linux

    (Pois é.. post muuuito nerd :) )

    Você alguma vez na vida, quis redistribuir as IRQs do seu sistema, na mão? Sim.. na mão.. sem utilizar o irqbalance… (a história para essa vontade é longa, chata, nerd e tediosa… por isso não vai ser contada :) )
    Bem, se você já quis fazer e não sabia dos valores a serem utilizados para cada processador, vai ai uma listinha (eu procurei muito na internet até encontrar isso..):

    000000001 - Processador 1
    000000002 - Processador 2
    000000004 - Processador 3
    000000008 - Processador 4
    000000010 - Processador 5
    000000020 - Processador 6
    000000040 - Processador 7
    000000080 - Processador 8
    … etc

    Para trocar o processador de uma IRQ, faça:

    echo “[valor]” > /proc/irq/[numero_da_irq]/smp_affinity

    Ex:

    echo “000000010″ > /proc/irq/213/smp_affinity

    (isso vai trocar a IRQ 213 para o processador 5)

    E só! Para conferir, você pode usar o mpstat:

    mpstat -P ALL 1

    (vai mostrar a cada 1 segundo as informações de cada processador em separado)

    Baixar mp3 do imeem.com

    Aviso: O intuito deste post não é ir contra leis, ou incentivar o download ilegal de músicas. É apenas uma forma de mostrar uma das coisas que pode ser feita com simples comandos Unix.

    Assim como o Goear.com, o IMEEM é um site onde você pode disponibilizar via streaming, seus arquivos de música (e vídeo..). Pois bem.. estava ouvindo algumas músicas e fiquei com vontade de baixar algumas (eu compraria com todo gosto na iTunes Store, se eles vendessem para cartões de crédito brasileiros… como ainda não é possível, me resta baixar assim..).

    Depois de uns 15 minutos de investigação, acabei fazendo um script em Bash Script, que faz todo o trabalho sujo :)

    Clique aqui para ver o script

    O script está bem simples.. não verifica praticamente nada. Mas baixa..

    OBS: Quem quiser usar, faça por sua própria conta e risco.
    OBS2: Não.. não vou comprar música nesses sites ridículos que existem no Brasil. Ainda acredito na promessa da iTunes Store internacional :D

    Proteja-se!

    (Tá.. é muito nerd essa propaganda, mas quem fez é um gênio :D )

    Proteja-se!

    Layouts de Teclado (do tipo Bundle) para Mac OS X

    Não sei se vocês já passaram por isso, mas quem usa teclados não Apple no Mac, costuma ter problemas com o layout do Teclado. A maioria dos layouts (principalmente os ABNT2) que existem na internet precisam ter habilitado um outro layout (geralmente um dos originais do Mac), o que deixa margem para alguns programas que não usam o Cocoa apresentar conflitos ou simplesmente alterarem o layout em uso para aquele outro que está habilitado apenas para que o seu funcione (minha maior frustração é o Opera, que insiste em fazer isso… - antes que perguntem, uso o Opera no Mac para testes de sites feitos pela Diginet em diferentes navegadores)
    Pois bem, peguei 2 layouts que já tinha funcionando (um US International e um Brasileiro ABNT2) e gerei os pacotes Bundle (que não precisam de outro habilitado, impossibilitando “trocas” desavisadas de layout).

    Download Aqui!

    Para instalar, basta copiar os arquivos para a pasta:

    /System/Library/Keyboard Layouts/

    E reiniciar seu Mac.. Depois vá até System Preferences->International->Input Menu e escolher o layout do seu teclado. Lembre de remover os outros intrusos :D

    Teclas de atalho para o iTunes

    Uma das coisas que mais senti falta quando migrei do Linux para o Mac, foi o Amarok (meu player de músicas no Linux).
    Além de ele organizar as músicas numa coleção parecida com a do iTunes, ele tem um recurso que eu acho sensacional: Teclas de atalho válidas para todo o sistema. Isso quer dizer que em qualquer programa que eu estivesse no Linux, poderia usar as teclas de atalho do Amarok para mudar de música, pausar, parar, play, stop.. até tecla de atalho para exibir a janela do programa.
    Pois bem, mantive a frustração de não ter isso até ontem a noite, quando encontrei o SizzlingKeys. Este pequeno programa adiciona teclas de atalho personalizáveis, válidas em todo o sistema, para funções do iTunes. E ele ainda trás o plus de adicionar ao player uma pequena janela de notificação (como o screenshot a seguir..), além de ter o recurso de busca (usando uma interface própria).

    SizzlingKeys

    A versão básica (que já faz tudo que eu preciso..) é grátis!

    http://www.yellowmug.com/sk4it/

    Editor de textos simples, poderoso e Open Source para Mac

    Depois de muito procurar editores de texto para Mac, e ter passado um tempo testando o TextMate (que obviamente é bom, mas é pago..), descobri o Smultron.

    Várias coisas chamaram minha atenção nele. Dentre elas:

    • Pequeno (5.4MB)
    • Leve
    • Binário Universal (Roda tanto em Intel, quando em PPC)
    • Suporte a highlight em várias linguagens.. (várias mesmo..)
    • Suporte a Auto-completition
    • É open source (!!)
    • Várias outras coisas… (veja aqui a lista completa de recursos no site oficial)

    Aos que quiserem testar, o site oficial do programa é:

    http://smultron.sourceforge.net/

    Eu já adotei ele como meu Editor padrão :)