Por mais que eu gostaria de descobrir o problema, neste ponto muito tempo foi investido na exclusão de uma chave estúpida quando eu já tinha uma solução (a criação de linha de comando) que funciona. Vou apagar o usuário e executar os comandos de que preciso. Ainda seria maravilhoso ter uma resposta, mas não acho que isso vá acontecer.
Eu tenho uma rede de escravos anexada ao buildbot , cada um com uma conta de usuário buildbot. Eu gostaria que suas contas não tivessem senhas (leia: não uma senha vazia). Eu fiz isso com sucesso em uma das caixas como uma grande conseqüência de criar remotamente o usuário e não definir a senha no procedimento.
Duas outras máquinas OSX que eu configurei através da GUI têm senhas, e eu estou querendo saber se existe uma maneira de remover a senha sem deixá-la vazia. Analisei um pouco da documentação para dscl
e passwd
, mas eles não têm as opções que estou procurando. Eu poderia configurá-los para ser uma seqüência aleatória de números. Isso seria tão eficaz? Minha descrição é equivalente a ter uma senha vazia e bloquear a conta ( como neste disscussion para linux )? Se sim, como faço para bloquear uma conta do OSX?
A segunda parte da minha pergunta é em relação ao modo como criei originalmente os usuários. Abaixo estão os comandos e eles parecem funcionar bem, mas eu me pergunto se estou perdendo alguma configuração importante - o buildslave começou e executou trabalhos.
sudo dscl . -create /Users/buildbot
sudo dscl . -create /Users/buildbot UserShell /bin/bash
sudo dscl . -create /Users/buildbot RealName "BuildBot"
sudo dscl . -create /Users/buildbot UniqueID <ID>
sudo dscl . -create /Users/buildbot PrimaryGroupID 61
sudo dscl . -create /Users/buildbot NFSHomeDirectory /Users/buildbot
sudo mkdir /Users/buildbot
sudo chown buildbot /Users/buildbot
EDIT : Para as máquinas que já tinham contas com senhas criadas através das Preferências do Sistema, os comandos sugeridos por Dan Black não apagam a senha,
sudo dscl . -delete /Users/buildbot Password
sudo dscl . -read /Users/buildbot Password
A saída para o segundo comando é
Password: *******
Continuando como se a senha fosse excluída, eu corro
sudo dscl . -create /Users/buildbot Password '*'
su buildbot
E a senha anterior acessa a conta. Isso está no OSX 10.5.8 e 10.6.8.
sudo dscl . -change /Users/buildbot Password 'OLDPASS' '*'
su buildbot
Isso também não altera a senha, e o OLDPASS pode trocar de usuário quando solicitado pela senha.
Aqui está a saída completa do par de valores-chave para o usuário com o qual estou tendo problemas --criado por meio das preferências de sistema. Para esclarecer uma inconsistência, esta máquina usa o usuário 'desenvolvedor' e não 'buildbot', mas os comandos anteriores foram todos feitos da mesma forma com a substituição óbvia
Amoy:~ lyn$ sudo dscl . -read /Users/developer
dsAttrTypeNative:_writers_hint: developer
dsAttrTypeNative:_writers_jpegphoto: developer
dsAttrTypeNative:_writers_LinkedIdentity: developer
dsAttrTypeNative:_writers_passwd: developer
dsAttrTypeNative:_writers_picture: developer
dsAttrTypeNative:_writers_realname: developer
dsAttrTypeNative:_writers_UserCertificate: developer
AppleMetaNodeLocation: /Local/Default
AuthenticationAuthority: ;ShadowHash; ;Kerberosv5;;developer@LKDC:SHA1.08FF6FDC52096FD6C53DEDEE75A2F9315F964B22;LKDC:SHA1.08FF6FDC52096FD6C53DEDEE75A2F9315F964B22;
AuthenticationHint:
developer for auto testing
GeneratedUID: BF95A834-A7F1-4DDD-8DFB-6B80B8120CA7
NFSHomeDirectory: /Users/developer
Password: ********
Picture:
/Library/User Pictures/Fun/Flippers.tif
PrimaryGroupID: 20
RealName: Developer
RecordName: developer
RecordType: dsRecTypeStandard:Users
UniqueID: 512
UserShell: /bin/bash