Estou tentando instalar manualmente um daemon (Oracle Grid Engine) na minha máquina e gostaria que ele fosse executado em uma conta isolada. Qual é a maneira preferida, usando os Serviços de Diretório, de adicionar uma conta "sistema" à máquina local no OS X? Muitas delas existem em / etc / passwd ( _www
, _dovecot
, etc.), mas os comentários no topo do arquivo dizer que não é usado, exceto em modo de usuário único.
Estou executando o 10.6 e não preciso de nenhum gerenciamento de contas em rede especial. Espero algo simples - o equivalente useradd
a quase todos os outros sistemas operacionais semelhantes ao Unix.
mac-osx
user-management
directory-services
Tim Yates
fonte
fonte
Eu tentei o script do par e encontrei alguns problemas. Então, modifiquei-o para uma identificação de usuário específica e para o OS X Mavericks (10.9).
Descobri que havia alguns registros estranhos adicionados à conta de usuário em Mavericks - um PasswordPolicyOptions e um registro AuthenticationAuthority - que precisavam ser removidos para imitar corretamente outras contas de usuário de serviço interno (como _www).
Também adicionei os registros de senha e nome real à conta do grupo.
Criei um script único e personalizado apenas para uma conta de serviço WSGI. Aqui está o script atualizado.
Observe que após a execução desse script, os arquivos / etc / passwd e / etc / groups não são atualizados. Eu acredito que eles são atualizados na reinicialização.
fonte
EDIT: Atualizado em 9 de janeiro de 2014 para OS X Mavericks (sugestões de Dave, obrigado!)
Eu escrevi um script bash para fazer isso. Ele usará o primeiro uid não utilizado que seja menor ou igual a 500 (daids da conta no Mac OS X) que também possui um gid não utilizado idêntico.
Salve o script em um arquivo nomeado
add_system_user.sh
e defina-o como executávelchmod 755 add_system_user.sh
.Então, digamos que você queira adicionar um daemon / usuário do sistema chamado par . Você executaria esse script da seguinte maneira:
sudo add_system_user.sh par
E você receberá um usuário do sistema chamado
_par
aliaspar
(o nome que você solicitou) e que possui um uid e gid correspondente (por exemplo, 499 ou o que for encontrado).Aqui está o script:
fonte
Aqui está um artigo que explica como usar o dscl para criar uma conta de usuário.
artigo de osxdaily.com
fonte
dscl /Local/Default -read /Users/_sshd
(dscl /Local/Default -ls /Users
você receberá uma lista de contas locais). Observe que você não precisa definir todos os atributos; GeneratedUID é gerado aleatoriamente e RecordType são metadados automáticos. Além disso, a maioria das contas do sistema OS X tem um nome de conta principal que começa com sublinhado e um alias sem ele para compatibilidade com versões anteriores; Eu recomendo usar a convenção de sublinhado, mas não se preocupe com o alias simples, a menos que você precise.Aqui está uma versão do script de Dave, que também verifica se o usuário / grupo existe antes de criá-lo:
e um script para excluir o usuário:
fonte