As contas de usuário podem ser gerenciadas através da linha de comando?

12

Existe alguma maneira de adicionar, remover ou modificar contas de usuário por meio da linha de comando? Não estou falando de uma conta para um processo ou daemon do sistema, quero dizer, existe alguma maneira de adicionar uma conta de usuário, alterar, nomes reais do usuário, ícones, proteção FileVault, status de usuário Admin / normal / limitado e basicamente fazer tudo mais o que pode ser feito no painel de preferências Usuários das Preferências do Sistema, mas através de algum utilitário de linha de comando?

Josh
fonte
3
dscl? Talvez? Um ponto de partida para procurar, eu nunca tentei. Você notará que sua conta de usuário está completamente ausente do / etc / passwd. Você pode ter sorte olhando os documentos do OSX Server.
Jason Salaz
Eu não usei o dscl em um Mac que não seja servidor, mas é lógico que você poderia fazê-lo funcionar. Os documentos do OSX Server fornecem uma visão geral do que você pode fazer com a ferramenta dscl.
David Rouse

Respostas:

13

Para criar uma conta na pasta Usuários

dscl / -create /Users/addfromcli

Crie e defina a propriedade shell para bash.

dscl / -create /Users/addfromcli UserShell /bin/bash

Crie e defina o nome completo do usuário. (Exibido em alguns dos painéis / tela de login)

dscl / -create /Users/addfromcli RealName "Added From Cli"

Crie e defina o ID do usuário. (esse é o ID exclusivo, você precisa descobrir qual foi o seu último usuário criado e adicionar um)

dscl / -create /Users/addfromcli UniqueID 503

Crie e defina a propriedade de ID do grupo do usuário. (Este pode ser o seu grupo padrão)

dscl / -create /Users/addfromcli PrimaryGroupID 1000

Crie e defina o diretório inicial do usuário.

dscl / -create /Users/addfromcli NFSHomeDirectory /Local/Users/addfromcli

Defina a senha. (não use a senha como senha)

dscl / -passwd /Users/addfromcli PASSWORD

Mais alguns detalhes podem ser encontrados no OS X Daily

Infâmia
fonte
Agrupar essas linhas de comando em `` melhoraria muito a legibilidade.
precisa
Eu fiz isso (apenas com /alterado para localonly), mas o diretório inicial do novo usuário não apareceu ...
imz - Ivan Zakharyaschev 4/12/12
Ok, depois de sair do modo de usuário único, pude ver o novo usuário no menu de login e, em seguida, apareceu o novo diretório inicial no sistema de arquivos. Portanto, meu comentário acima não teve nenhum problema real.
imz - Ivan Zakharyaschev
6

A solução do @Infamy parece ser para 10.5.

No OS X 10.6, cada linha precisa ser alterada para ter a seguinte aparência:

sudo dscl localhost -create /Local/Default/Users/addusername

Ou seja, substituir /por localhost, preceder /Local/Defaulta /Userse invocar o comando inteiro com sudo.

bmike
fonte
Eu fiz isso (apenas com /alterado para localonly), mas o diretório inicial do novo usuário não apareceu ...
imz - Ivan Zakharyaschev 4/12/12
Ok, depois de sair do modo de usuário único, pude ver o novo usuário no menu de login e, em seguida, apareceu o novo diretório inicial no sistema de arquivos. Portanto, meu comentário acima não teve nenhum problema real.
imz - Ivan Zakharyaschev