Estou executando o useradd {user}
comando para adicionar usuários ao meu sistema, embora planeje executá-lo em um ambiente automatizado, e ele pode acabar sendo executado novamente, mesmo que o usuário já exista.
Existe uma maneira de executar isso apenas se o usuário ainda não existir? O usuário não tem uma pasta pessoal.
adduser
é geralmente preferido nos sistemas Debian / Ubuntu.useradd
.Respostas:
id -u somename
retorna um código de saída diferente de zero quando o usuário não existe.Você pode testá-lo de maneira simples ... (
&>/dev/null
apenas suprime a saída / aviso normal)fonte
tente isto:
ou até isso:
fonte
A menos que você tenha apenas alguns sistemas, você está fazendo a pergunta errada. A resposta não é executar o useradd, mas deixar esse trabalho para uma solução de gerenciamento de configuração, como fantoche ou chef. Isso permitirá que suas definições de usuário sejam centralizadas e impedirá que você execute loops e use ssh com usuários raiz para configurar seus sistemas. Você sempre terá sistemas em um estado de configuração conhecido.
A documentação para fantoches está disponível em http://docs.puppetlabs.com
Como um exemplo no fantoche:
fonte
O useradd não adicionaria o usuário novamente, se ele já existir, pretende garantir que o número e o login do uid sejam únicos. Se você planeja executar um lote, verifique se os uids que estão sendo usados são exclusivos; O useradd reclamaria das entradas problemáticas e você precisará capturar os erros / stderr para ver quais contas de usuário tiveram problemas para entrar nos sistemas de contas (/ etc / passwd, group, shadow).
fonte